Deux yunohost derrière une seule box?

De se côté pas de soucis non plus. J’ai plus galéré avec la partie DNS et notamment le hairpinning (loopback) quand j’avais la Livebox …

Merci pour l’info, j’essaierai à l’occasion car en faisant le reverse proxy avec yunohost et 2 autres yunohost derrière avec le même nom de domaine, j’avais un souci pour recevoir les mails systèmes de la seconde machine.

C’est quoi nginx proxy manager, où on le trouve, comment on l’installe ?

Hi @fdrubigny1 :wave:

Il est disponible à cette adresse :

Dans la section “Setup” (menu en haut à gauche) tu pourras trouver les informations concernant sont installation (sur docker, sur raspberry, etc …) :wink:

1 Like

Merci, j vais aller regarder car mon Client VPN est down et rien à faire pour le redémarrer, du coup mon site n’est plus accessible depuis l’extérieur…

Si tu utilises des nom de domaine différents/mails différents sur tes différents yunohost, ça devrait fonctionner aussi avec un yunohost frontal et l’application redirect sur lequel tu installes également tous les noms de domaine.

2 Likes

Ce qui m’ennuie c’est que ça fonctionnait bien avec VPN Client et le fournisseur ARN-VPN, et là bim, tout à sauté, impossible de relancer le VPN… j’ai fait un post là : Mon Client VPN est down

Salut à tous, donc je comprends que la solution de Nginx de Yunohost en reverse proxy - Le blog de Genma n’est pas suffisante (utiliser l’application Redirect) ?

@Kimous , est-il quand même possible d’avoir le proxy manager sur le Yunohost principal ?

Salut @biva :wink:

Je t’avoue que je n’ai pas tenté d’installer quoi que ce soit non pris en charge par Yuno sur le serveur Yuno. Mon NPM (Nginx Proxy Manager) était un conteneur Docker sur une autre machine.

Le “module” Redirect de Yuno est un Nginx en arrière plan, donc en toute logique tu dois pouvoir faire la même chose, mais de façon moins graphique.
Et le second soucis c’est qu’avec ce “module”, ça va être plus chiant de mettre en place le HTTPS (pas impossible mais moins facile).

Il faudrait que je test quand j’aurais un moment pour voir ce que ça peut donner de planter un NPM sur le serveur Yuno et simuler ce que tu exposes dans ton schémas, mais malheureusement je vais pas avoir de dispo tout de suite :wink:
Un des soucis avec la mutualisation des deux, c’est que le NPM doit exposer le port 80 et 443, hors Yuno a besoin aussi de ces ports. Donc s’ils doivent être sur la même machine, il faudra que tu changes les ports du Yuno (et c’est là que les ennuis peuvent commencer :wink: )

Donc plusieurs solutions s’offrent à toi :

  • Tester avec NPM sur le serveur Yuno (mais pense bien à faire une sauvegarde au cas où! et l’histoire des ports)
  • Mettre le NPM sur une machine autre (ce que je te conseille vivement)
  • Tester avec Redirect (ça sera plus laborieux mais peut être plus adapté à la situation j’imagine, si tu n’a pas moyen de mettre en place la solution 2)

J’espère t’avoir apporté plus d’éclaircissements :wink:
Si j’ai le temps de me pencher sur la solution 1 et/ou 3, je te ferais signe :slight_smile:

1 Like

Si ça fonctionne, c’est simplement les mails systèmes que je n’ai pas réussi à mettre en place sur le 2ème serveur, j’ai cherché un peu mais je n’ai pas insisté comme c’est un serveur de test.

Salut @Kimous

J’ai la meme config, un NPM sur un RPI et deux serveur derrière dont un autre RPI avec YNH et un serveur windows.

Les deux serveur sont accessible depuis l’extérieur mais seul les port 22, 80 et 443 sont ouvert.
Peut-tu me dire comment tu as fait pour ouvrir les autres? Je ne suis pas sur d’avoir compris.

  • Sur ton routeur tu redirige les ports 80 et 443 vers l’ip locale de ton NPM

  • Sur ton NPM tu créer d’abord X hotes proxy selon le nombre de serveur.
    Par exemple chez moi ca donne ca.

  • ensuite tu va bidouiller dans ta box pour rediriger les ports supplémentaires mais je ne suis pas sur si tu redirige sur l’ip locale de la machine cible ou bien si tu dirige de nouveau sur le proxy…

J’ai cru comprendre que la fonction stream permettait justement de rediriger les ports supplémentaire mais j’ai beau la config dans tout les sens… ca donne riendutoutdutout :face_with_diagonal_mouth:

Voila ce que j’ai fait sur la partie stream.

Trouvé!

Pour celle et ceux que cela intéresse il faut bien ajouter des règle de streams mais il faut aussi modif le fichier docker-compose.yml situé dans le dossier ~/nginx-proxy-manager#.

Sur mon routeur j’ai également rediriger les ports supplémentaire vers le proxy.

Ah et j’ai aussi désactiver le pare-feu sur le serveur windows… ca aide un peu lol

1 Like

Effectivement NPM fonctionne en front de Yunohost en :

  • Créant un Proxy Host pour le port 443
  • Créant des streams pour les autres port : 25, 587, 5222, …
  • Ouvrant tous ces ports dans le .yml du docker

Reste cependant des problématiques/questions :

  • Certificat(s) : Pour le proxy host en https, j’ai demandé a npm de créer un certificat auprès de let’s encrypt, ca fonctionne, mais ca me gène un peu, car de ce que je comprends, il y a du coup deux certificats pour le meme domaine, un coté yunohost et un autre coté npm. Doit-on copier les certificats + clés de yunohost dans npm et repasser le domaine yunohost en auto-signé ?

  • Diagnostic yunohost : Sans doute est-ce lié au point ci-dessus, mais le diagnostic yunohost nous alerte par ce message “Web : Le domaine xxx.ynh.fr est inaccessible en HTTP depuis l’exterieur.”. J’ai peur que ca gène le renouvellement automatique let’s encrypt de yunohost.

J’aimerai bien vos avis éclairés sur ces points SVP.

Salut,
j’ai eu une config un peu spéciale avec ce genre de problème, c’est peut-être lié ? Ou du moins ça peut peut-être aider à comprendre des configs postfix, car ce n’est pas tout à fait le même problème, l’idée est d’utiliser un mail de Gandi sur un des noms de domaine et garder les mails Yunohost pour les autres domaines:

1 Like

j’ai configuré Nginx Proxy Manager dans docker, j’ai une adresse IP locale proxy yunohost avec ssl chiffrons, tout fonctionne, mais toutes les 10 à 30 minutes, tous les domaines se déconnectent pendant 1 à 2 minutes à plusieurs reprises

Bonjour,

Je cherche une solution similaire pour mettre 2 VMs YNH sur Proxmox.

J’ai voulut essayer avec OPNsense et HAProxy, mais découvrant l’un et l’autre, ce n’est pas evident.

Je viens de voir et lire ce fil de discussion qui me semble plus facile connaissant déjà NPM.

Est ce qu’il est possible de laisser YNH gérer les ndd en faisant une wildcard depuis npm et rediriger*.ndd vers la VM ? Arrivera-t-il a ge’erer les sous domaine etc?

Je comprend bien que s’il y a oiverture des ports il faudra que je le fasse via stream.

Merci d’avance

1 Like

Il y a une PR dans ce sens ici, mais pas totalement terminée : feature: new global setting options to enable SNI-forward to external domains by alexAubin · Pull Request #1697 · YunoHost/yunohost · GitHub

1 Like

Le but est depuis un yunohost d’en gerer plusieurs ? Je crois avoirdeja vue ce lien surement sur les chatons.

Je regarde ca

le problème du proxy par un raspberry pi c’est le débit maximum drastiquement réduit par rapport à une connexion gigabit ethernet standard

Désolé d’ouvrir à nouveau ce sujet.

S’il y a un serveur qui fait SNI Proxy (très simple avec Nginx), il faut que les serveur derrière le SNI Proxy sachent qu’elles reçoivent les requêtes depuis un SNI Proxy.

Dans mon cas, seul l’IPv4 est concerné, parce qu’en IPv6, ça arrive directement sur les Yunohost sans passer par le reverse proxy (ce qui permet de valider/renouveler les certificats Let’s Encrypt par chacun des Yunhost)

Du coup, sur les configs web de chaque domaine des Yunohost, au niveau des lignes listen en IPv4, je dois ajouter un proxy_protocol

Edit : Ce fichier /usr/share/yunohost/conf/nginx/server.tpl.conf
Edit 2 : je posterai d’autres messages plus tard concernant les IP réelles

Au niveau de la configuration globale, il faudrait aussi ajouter proxy_header peut être comme ça mais je dois vérifier comment je l’ai fait. C’est pour qu’il y ait l’IP réelle dans les logs.

proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;

Ce qui m’importe, c’est que chaque Yunohost gère ses certificats Let’s Encrypt. le proxy SNI ne faisant que passe-plats, sans toucher à la couche SSL.
C’est un choix d’architecture.