Des domaines pour mes Apps : Nginx Proxy Manager
Le reverse proxy, dernière brique du homelab : une vraie URL et un certificat pour chaque appli, en deux champs à remplir. Nginx Proxy Manager Plus.
Allez, on attaque la dernière brique vraiment importante du homelab : le reverse proxy. Celui qui transforme une adresse IP et un numéro de port en une vraie URL, avec un vrai certificat.
Je dis pas que c’est fini, hein. Le NAS aussi sera utile, et c’est l’article suivant parce que c’est un gros morceau. Mais niveau plomberie, le reverse proxy c’est le dernier maillon, ou plutôt le dernier tuyau ^^.
Un reverse proxy, c’est quoi
C’est simple. C’est lui qui va te dire : tel domaine, genre jellyfin.mon-homelab.duckdns.org, c’est telle appli, sur telle machine, sur tel port.
Parce que sans lui, ta vie ressemble à ça : tu retiens que Jellyfin c’est le port 8096, que ton Portainer c’est le 9443, que ton autre truc c’est le 7575, et tu tapes des adresses IP à la main dans ton navigateur. Sur ton téléphone, à l’extérieur, bon courage.
Avec un reverse proxy, tu tapes jelly.mon-domaine.fr et c’est réglé. Ça marche. Pour peu que le domaine soit bien branché sur ton IP, et là on en revient à Duck DNS, lol.
Les trois briques qui vont ensemble
Dans mon homelab, tout tient sur trois trucs, et ils marchent en équipe.
Portainer, d’abord : c’est là que j’héberge toutes mes applis. Ensuite les applis elles-mêmes, comme mon relais POP3 vers SMTP ou Jellyfin. Et enfin Nginx Proxy Manager, le reverse proxy, celui qui donne une vraie URL à tout ça.
Tu configures le tout sur Duck DNS si tu veux du gratuit, ou sur un vrai domaine à toi avec autant de sous-domaines que tu veux. Le principe est identique.
Pourquoi Nginx Proxy Manager Plus (et oui, le Plus est important)
Parce qu’en vrai il est hyper hyper simple. Voyez vous-même.

Là on a des domaines qui pointent vers tel port de ma machine. Jellyfin tourne dans Portainer sur le port 8096, sur telle machine : tu lui dis jelly.mon-domaine.com, tu remplis deux champs, et c’est réglé.
Nginx Proxy Manager se veut hyper simple, mais il reste ultra configurable, avec des options avancées quand tu en as besoin. Il gère aussi les authentifications HTTP classiques, vous savez, quand le navigateur te demande un identifiant et un mot de passe avant même d’afficher la page. Et le filtrage par IP. Bref, tout ce que vous voulez.
Le Plus, c’est quoi au juste
Le Plus, c’est juste un fork qui rajoute des options. NPMplus, de son vrai nom. Grosso modo, voilà ce qu’il ajoute par rapport à l’original :
- CrowdSec se branche beaucoup plus facilement dessus. C’est un genre de fail2ban moderne et communautaire : il lit tes logs, repère les comportements pourris, et bannit. La différence, c’est que les signalements sont partagés entre tous les utilisateurs, donc tu bloques des IP malveillantes avant même qu’elles t’aient visé.
- Un SSO, c’est-à-dire une authentification unifiée. Tu te connectes une fois, et tous tes services derrière le proxy te reconnaissent. Il sait causer OpenID Connect, et se brancher sur Authelia, Authentik, VoidAuth ou tinyauth.
- Du HTTP/3, du Brotli et du Zstd, du mTLS, et une config TLS bien plus sévère par défaut.
- GoAccess intégré, pour avoir des stats de fréquentation lisibles sur tes logs nginx.
Mais rien de tout ça n’est obligatoire. Vraiment rien. Tu peux l’installer et ne jamais toucher à ces options, il marchera exactement comme l’original.
Parce que même Nginx Proxy Manager sans le Plus, c’est une révolution. Avant, on utilisait Traefik, ou directement nginx. Et je vous assure que se taper les fichiers de config à la main, c’était une plaie. Un server, un location, les en-têtes à recopier, le certificat à pointer, un rechargement, une virgule oubliée, on recommence. Maintenant c’est quelques clics et c’est fait.
Le truc que tous les admins web détestent : le HTTPS
J’allais oublier, et c’est peut-être le plus gros morceau. Il gère Let’s Encrypt de façon quasi automatisée. Tu coches une case, tu mets ton adresse mail, et tu as ton certificat. Le renouvellement se fait tout seul.
Il sait même le faire en mode DNS si tu veux un certificat wildcard, du genre *.mon-domaine.fr, valable pour tous les sous-domaines d’un coup. Perso je n’en ai jamais eu besoin, lol, mais c’est là.
Quand on se souvient du temps où obtenir et renouveler un certificat était une corvée trimestrielle, franchement, ça pique.
L’installer
Tu passes par Portainer, ou par un compose à la main. Mais bon, on a mis un super Portainer, pourquoi s’en priver.
Attention, celui-ci c’est bien le compose de NPMplus, pas celui de l’original :
name: npmplus
services:
npmplus:
restart: unless-stopped
image: docker.io/zoeyvid/npmplus:latest
network_mode: host
cap_drop:
- ALL
cap_add:
- NET_BIND_SERVICE
- SETGID
security_opt:
- no-new-privileges:true
volumes:
- "/opt/npmplus:/data"
environment:
- "TZ=Europe/Paris"
Le network_mode: host n’est pas là par hasard : le conteneur doit écouter sur les ports 80 et 443 de la machine, c’est lui la porte d’entrée. L’interface d’administration, elle, arrive sur le port 81, en HTTPS. Au premier démarrage il te génère un mot de passe aléatoire et l’écrit dans les logs du conteneur : va le chercher là, tu ne le trouveras nulle part ailleurs.
Le proxy qui se sert lui-même
Et là il y a un truc que je fais systématiquement : je rajoute nginx.mon-homelab.com dans NPM lui-même, pointé sur son propre port 81. Et ça marche vraiment.
Concrètement, tu ouvres l’interface sur https://ip-de-la-machine:81, tu cliques sur « Add Proxy Host », et tu remplis quatre champs :
- Domain Names :
nginx.mon-homelab.com - Scheme :
https, parce que l’interface de NPMplus ne parle qu’en HTTPS - Forward Hostname / IP :
127.0.0.1, la machine se parle à elle-même - Forward Port :
81
Puis tu passes sur l’onglet SSL, tu choisis « Request a new SSL Certificate », tu coches « Force SSL », et tu enregistres. Le certificat est demandé dans la foulée.
À partir de là tu administres ton reverse proxy depuis https://nginx.mon-homelab.com, avec un vrai certificat reconnu. Fini l’adresse IP et le numéro de port à retenir, fini l’avertissement du navigateur sur le certificat auto-signé.
Un conseil quand même : sur celui-là, mets une Access List, ou un filtrage par IP, ou ton SSO. C’est la porte d’entrée de tout le reste, autant ne pas la laisser grande ouverte sur Internet.
C’est lui qui change tout
Je vous le dis, c’est vraiment le dernier maillon d’une chaîne d’outils qui vont ensemble. Il ne faut pas l’oublier. Portainer héberge, les applis tournent, Duck DNS fait arriver le monde chez toi, mais c’est le reverse proxy qui rend tout ça utilisable au quotidien.
Essayer, c’est l’adopter.
Image d’en-tête générée par IA.
SmeagolWorms4
Commentaires