NGINX Proxy Manager
Nginx Proxy Manager (NPM) est une interface web qui permet de gérer facilement un reverse proxy Nginx sans avoir besoin de taper des configurations complexes. C’est une solution simple et graphique pour exposer proprement et sécuriser ses services (Nextcloud, Homarr, etc.) sur Internet sans se battre avec les fichiers de configuration Nginx.
➢ NGINX Proxy Manager permet :
- Rediriger des domaines vers des services internes (ex : servicescloud.nomdedomaine.fr vers un serveur Nextcloud)
- Générer automatiquement des certificats SSL gratuits via Let’s Encrypt
- Gérer des sous-domaines et redirections
- Ajouter une authentification simple (protection par mot de passe)
🚨Prérequis 🚨
Il vous faut un nom de domaine. Pour ce tuto il sera fait sur OVH. En 2026, il vous en coutera 2.39€TTC/1er Année et ensuite 3.59€TTC/an. Je vous met un lien si vous souhaité en prendre un chez eux.(lien non affilié/pas de pub). Il vous faudra aussi un compte Cloudflare. Il faudrat aussi ouvrir le port 443 en TCP sur votre Box.
➢ Installation de Docker Si Docker n’est pas installé sous Debian/Ubuntu :
sudo apt update
sudo apt install docker.io
sudo systemctl enable docker
sudo systemctl start docker➢ Docker Compose (fortement recommandé)
sudo apt install docker-compose-plugin➢ Portainer
Portainer est une interface web pour gérer Docker visuellement. Très pratique si tu ne veux pas tout faire en ligne de commande.
curl -L https://downloads.portainer.io/ce-lts/portainer-compose.yaml -o portainer-compose.yaml➢ NGINX Proxy Manager
⚠️Attention avant d'installé votre NGINX Proxy Manager, vérifier que le port 80 n'est pas utilisé. Si oui changer le port du service qui utilise ce port 80. NGINX doit utilisé le port 80 par obligation.⚠️
version: '3'
services:
nginx:
image: 'jc21/nginx-proxy-manager:latest'
container_name: nginx
ports:
- '80:80'
- '81:81'
- '443:443'
restart: always
environment:
DB_MYSQL_HOST: "db"
DB_MYSQL_PORT: 3306
DB_MYSQL_USER: "👶"
DB_MYSQL_PASSWORD: "🔑USER"
DB_MYSQL_NAME: "nginx"
volumes:
- 💽:/data
- 💽:/etc/letsencrypt
depends_on:
- db
db:
image: 'jc21/mariadb-aria:latest'
container_name: nginx-db
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: "🔑ROOT"
MYSQL_DATABASE: "nginx"
MYSQL_USER: "👶"
MYSQL_PASSWORD: "🔑USER"
volumes:
- 💽:/var/lib/mysqlPour l'icone 💽 mettez le chemin du disque que vous souhaitez utilisé.
👶 = Nom de l'Utilisateur
🔑ROOT = Mot de passe root qui doit être identique pour les deux
🔑USER = Peux être différent que le 🔑ROOT
Mise en place de l'utilisateur NGINX Proxy Manager
Pour vous connecté à votre Proxy vous devrez taper l'adresse IP de votre serveur ainsi que le port 81 (http://XXX.XXX.X.XXX:81). Vous devriez avoir une page comme celle-ci.

- Email et mot de passe à utilisé à la première connexion :
Email :
admin@example.comMot de passe :
changeme- Une foi fais vous arriverez sur cette page :

- Vous mettez votre NOM, PRENOM et votre adresse mail. vous cliquez sur Save. une nouvelle pages apparait :

- Dans Current Password mettez :
changeme- New Password et Confirm Password, mettez le mot de passe que vous souhaitez. (Petit conseil = Mot de passe fort). Cliquez sur Save.

MISE EN PLACE DU SERVEUR DNS
Vous devez avoir un compte cloudflare.
- Entrez votre compte et écrivez votre nom de domaine dans cette partie.

- Vous entrez votre nom de domaine et ne changez aucun paramètre et cliqué sur continue. Choisissez Free en cliquant sur Select Plan.

- A la fenêtre suivant vous cliquez sur Continue Activation et la une nouvelle fenêtre va apparaitre :

- Gardez bien c'est valeur on va en avoir besoins sur OVH (Ou sur le site ou vous avez votre nom de domaine).

➢ On va entré le DNS de Cloudflare pour que celui-ci gère lui même le trafic. une fois sur votre compte cliquez sur votre nom de domaine :

- Une fois sur votre domaine cliquez serveur DNS et cliquez sur Modifier les DNS. Entrer le premier DNS donnez par cloudflare et cliquez sur ajoutez.

- Entrez le second DNS et cliquez sur ajoutez :

- Cliquez sur appliquer la configuration :

- Maintenant c'est fini avec OVH. On doit attendre que Cloudflare soit valide. Cela peut être rapide mais peut mettre plusieurs heure selon le fournisseur de domaine.
MISE EN PLACE DU CERTIFICAT SSL
➢ On va créer le certificat SSL pour que les connexions soit en HTTPS. Une fois votre domaine validé on retourne sur Cloudflare :
- On clique en haut à droite sur le bonhomme

- Profile :

- A gauche de l'écran on clique sur API Tokens :

- Créate Token :

- Edit Zone DNS, on clique sur le Use template :

- Ensuite on sélectionne notre domaine et on clique sur Continue to summary :

- Ensuite on clique sur Create Token :

- On clique sur copier et on le colle dans un bloc note ou word (On en aura besoins après pour le SSL sur NGINX Proxy Manager):

◇ On retourne sur notre NGINX Proxy Manager :
- On clique sur Certificat - Add Certificat - Certificat DNS

- Domain Names : On rentre le nom de notre domaine avec *. avant. Exemple : *.mondomaine.ovh
- DNS Provider :On choisi Cloudflare
- Credentials File Content : On supprime la clef par défaut qu'on remplace par celle récupérer plus haut. On doit se retrouver par
# Cloudflare API token
dns_cloudflare_api_token=VOTRECLEFAPIOn clique sur Save

Ça va vérifier et créer votre certificat SSL. Une fois réalisé, vous dévirez avoir une page comme suit :

MISE ENPLACE DU LIEN ENTRE NOTRE RESEAU ET CLOUDFLARE
Nous devons récupéré notre IP Public (Attention pour ceux qui utilise un VPN, désactiver avant votre VPN), on clique sur le lien en dessous qui vous donnera cette IP et copier la :

Une fois récupérer, on va sur cloudflare et on clique sur notre Website, ensuite mondomain.ovh (le votre de domaine) et cliquer sur DNS et cliquez sur Ajouter un enregistrement. Vous devriez avoir cette fenêtre :

- Type : A
- Nom : le nom de votre domaine (mondomaine.fr)
- IPV4 : Votre IP Publique xx.xx.xx.xx
- Etat du proxy : Il faut le désactivé
- Cliquez sur Enregistrer

CREATION D'UN SOUS DOMAINE
Maintenant on va crée un hôte pour pouvoir aller sur la page en extérieur, on clique sur Host et on choisi Proxy Hosts:

Après on clique sur Add Proxy Host et une fenêtre s'ouvre :
- Domain Name : On va crée un sous domaine exemple : cloud.mondomaine.ovh
- Forward Hostname / IP : On rentre l'IP de la machine sur lequel le service ce trouve sur notre réseau interne. Exemple : 192.168.X.XXX
- Forward Port : Le port sur lequel on doit se connecter aux service
- Ensuite on clique sur l'onglet SSL

- SSL Certificat : Menu déroulant : On choisis notre certificat SSL qu'on a crée avant.
- On sélectionne Force SSL, HSTS Enabled, HTTP/2 Support et HSTS Sub-domains.
- On clique sur Save.

- on va sur cloudflare et on clique sur notre Website, ensuite mondomain.ovh (le votre de domaine) et cliquer sur DNS et cliquez sur Ajouter un enregistrement. Vous devriez avoir cette fenêtre :

- Type : CNAME
- Nom : Celui que vous voulez donner à votre service (exemple : cloud)
- Cible : mettez @
- Etat du proxy : Il faut le désactivé
- Cliquez sur Enregistrer

C'EST FINI 😄
Vous pouvez essayé de tapez l'adresse enregistré (exemple : cloud.mondomaine.ovh) vous devriez tombé sur votre service que vous avez enregistré. Si vous voulez mettre d'autre sous-domaine pour avoir accès à d'autre service, il vous suffit de reprendre la dernière étape de création d'un sous domaine.
Merci d'avoir lue ce petit tuto sur NGINX Proxy Manager.
Maintenant vous pouvez voté pour le sujet du prochaine Article en cliquant ci-dessous.
