03 - DNS + Reverse proxy (Nginx Proxy Manager) + HTTPS
Ici on relie tes sous-domaines à ton VPS, puis on met en place Nginx Proxy Manager (NPM) : c'est nginx, mais piloté par une interface web, avec les certificats HTTPS Let's Encrypt en quelques clics. Idéal pour ne pas éditer des fichiers de conf nginx à la main.
1. Créer les enregistrements DNS
Le domaine engwe-france.fr est géré chez Shopify ; on ne touche pas à la
racine (elle sert ton site). On ajoute uniquement des sous-domaines qui
pointent vers l'IP de ton VPS.
Dans l'éditeur DNS (Shopify → Paramètres → Domaines → gérer le DNS), crée un
enregistrement A par service. Schéma retenu : des sous-domaines simples à
un niveau de la forme <nom>-it, tous vers la même IP :
| Type | Nom (hôte) | Valeur | Service |
|---|---|---|---|
| A | npm-it |
IP_DU_VPS |
Admin proxy (facultatif, on passe par tunnel SSH) |
| A | n8n-it |
IP_DU_VPS |
n8n |
| A | chat-it |
IP_DU_VPS |
Open WebUI |
| A | data-it |
IP_DU_VPS |
NocoDB |
| A | mongo-it |
IP_DU_VPS |
Mongo Express |
| A | api-it |
IP_DU_VPS |
FastAPI |
| A | portainer-it |
IP_DU_VPS |
Portainer (GUI Docker) |
| A | uptime-it |
IP_DU_VPS |
Uptime Kuma (surveillance) |
Pourquoi
<nom>-itplutôt que<nom>.it? Un sous-domaine à un seul niveau (n8n-it.engwe-france.fr) = un seul enregistrement A, mieux supporté par l'éditeur DNS de Shopify que les sous-sous-domaines. La racineengwe-france.frreste intacte pour ton site.
La cohérence avec le reste : dans docker/.env, DOMAIN=engwe-france.fr.
Les services répondront donc sur n8n-it.engwe-france.fr, etc.
Vérifier la propagation
Depuis ton PC (PowerShell), attends quelques minutes puis :
nslookup n8n-it.engwe-france.fr
L'IP renvoyée doit être celle du VPS. (La propagation peut prendre de quelques minutes à ~1 h.)
2. Lancer Nginx Proxy Manager
NPM fait partie de la stack (docker/docker-compose.yml). On va d'abord copier
la stack et le démarrer - détaillé à l'étape suivante. Pour l'instant, sur le
VPS, place-toi dans le dossier de la stack et lance uniquement NPM :
cd ~/stack # là où tu as copié le dossier docker/ (voir étape 04)
cp .env.example .env && nano .env # remplis les secrets (voir étape 04)
docker compose up -d nginx-proxy-manager
docker compose ps
3. Accéder à l'admin NPM via un tunnel SSH (sécurisé)
L'interface d'admin (port 81) n'est pas ouverte sur Internet (bonne pratique). On y accède par un tunnel SSH depuis ton PC. Dans PowerShell :
ssh -L 8181:localhost:81 engwe-seer@IP_DU_VPS
Laisse cette fenêtre ouverte, puis dans ton navigateur va sur :
http://localhost:8181
Identifiants par défaut (à changer immédiatement) :
- Email :
admin@example.com - Mot de passe :
changeme
NPM te forcera à définir un vrai email + mot de passe fort au premier login.
4. Créer un « Proxy Host » par service
Pour chaque service, dans NPM : Hosts → Proxy Hosts → Add Proxy Host.
Onglet Details :
- Domain Names : le sous-domaine, ex.
n8n-it.engwe-france.fr - Scheme :
http - Forward Hostname / IP : le nom du conteneur (ex.
n8n) - Forward Port : le port interne du service (voir tableau ci-dessous)
- Active Block Common Exploits et Websockets Support
Onglet SSL :
- SSL Certificate : Request a new SSL Certificate
- Active Force SSL + HTTP/2 Support
- Coche I Agree to the Let's Encrypt Terms, mets ton email, Save
NPM obtient alors le certificat automatiquement. ✅
Tableau des cibles (Forward Hostname / Port)
| Sous-domaine | Forward Hostname | Forward Port |
|---|---|---|
n8n-it.engwe-france.fr |
n8n |
5678 |
chat-it.engwe-france.fr |
open-webui |
8080 |
data-it.engwe-france.fr |
nocodb |
8080 |
mongo-it.engwe-france.fr |
mongo-express |
8081 |
api-it.engwe-france.fr |
fastapi |
8000 |
portainer-it.engwe-france.fr |
portainer |
9000 |
uptime-it.engwe-france.fr |
uptime-kuma |
3001 |
NPM et les services partagent le réseau Docker
proxy, donc NPM peut joindre les conteneurs par leur nom (n8n,open-webui, …). Pas besoin d'IP.
5. Astuce : restreindre les accès sensibles
Pour Mongo Express et NocoDB, tu peux ajouter dans NPM une Access List (Hosts → Access Lists) avec authentification et/ou filtrage par IP, en plus du HTTPS. Associe-la ensuite au Proxy Host correspondant.
Vérifications de fin d'étape
https://n8n-it.engwe-france.frs'ouvre avec un cadenas (certificat valide).- Pas d'alerte « connexion non sécurisée ».
➡️ Étape suivante : 04-lancer-la-stack.md
