Aller au contenu
Logo
Table des matières
VeryCloud
DocumentationVPS Linux

Installer Nginx Proxy Manager sur Debian

Installer Nginx Proxy Manager sur Debian

Nginx Proxy Manager est une interface web qui pilote Nginx en arrière-plan. Plutôt que d'éditer manuellement des fichiers `server { }`, vous ajoutez vos domaines en quelques clics et NPM génère automatiquement la configuration et les certificats Let's Encrypt. Idéal pour héberger plusieurs services sur un même VPS : Plex, Nextcloud, Vaultwarden, Uptime Kuma, des sites WordPress, etc.

Catégorie
VPS Linux
Niveau
Facile
Lecture
4 min
Publication
16 mai 2026

Prérequis

  • VPS Debian 11/12 ou Ubuntu 22.04+ avec accès root
  • Docker et Docker Compose installés (voir le tuto Docker)
  • Ports 80, 81 et 443 ouverts
  • Un nom de domaine pointant vers l'IP de votre VPS

Étape 1 : Préparer l'environnement

Créez un dossier pour NPM :

sudo mkdir -p /opt/nginx-proxy-manager
cd /opt/nginx-proxy-manager

Étape 2 : Fichier docker-compose

Créez le fichier docker-compose.yml :

sudo nano docker-compose.yml

Collez la configuration suivante :

services:
  app:
    image: 'jc21/nginx-proxy-manager:latest'
    container_name: nginx-proxy-manager
    restart: unless-stopped
    ports:
      - '80:80'
      - '81:81'
      - '443:443'
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt
    environment:
      DISABLE_IPV6: 'false'

Étape 3 : Démarrer le conteneur

sudo docker compose up -d

Vérifiez que le conteneur tourne :

sudo docker ps

Étape 4 : Première connexion

Ouvrez votre navigateur sur :

http://IP_DE_VOTRE_VPS:81

Identifiants par défaut :

  • Email : admin@example.com
  • Mot de passe : changeme

Important : changez immédiatement l'email et le mot de passe à la première connexion.

Étape 5 : Ajouter un Proxy Host

Cliquez sur Hosts → Proxy Hosts → Add Proxy Host.

Remplissez :

  • Domain Names : app.votre-domaine.com
  • Scheme : http
  • Forward Hostname / IP : l'IP interne ou hostname du service (ex: 172.17.0.1 pour l'hôte, ou le nom d'un autre conteneur Docker)
  • Forward Port : le port du service (ex: 3000)
  • Cochez Block Common Exploits
  • Cochez Websockets Support si le service utilise du WebSocket

Étape 6 : Activer le SSL Let's Encrypt

Dans l'onglet SSL du même proxy host :

  • SSL Certificate : Request a new SSL Certificate
  • Cochez Force SSL
  • Cochez HTTP/2 Support
  • Cochez HSTS Enabled
  • Saisissez votre email pour Let's Encrypt
  • Acceptez les conditions

Cliquez sur Save. NPM contacte Let's Encrypt, valide le domaine et installe le certificat automatiquement.

Étape 7 : Sécuriser l'accès à l'interface NPM

Le port 81 expose l'interface admin. Bloquez son accès public via UFW :

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow from VOTRE_IP_FIXE to any port 81
sudo ufw enable

Étape 8 : Configurer un Stream (TCP/UDP)

Pour proxifier un service non-HTTP (Minecraft, base de données distante, etc.) :

Hosts → Streams → Add Stream

  • Incoming Port : port public (ex: 25565 pour Minecraft)
  • Forward Host : IP du serveur cible
  • Forward Port : port du service
  • TCP / UDP selon le protocole

Dépannage

"502 Bad Gateway"

Le service derrière le proxy n'est pas joignable. Vérifiez :

sudo docker exec -it nginx-proxy-manager ping IP_DU_SERVICE

Sur Docker, utilisez le nom du conteneur ou host.docker.internal plutôt qu'une IP fixe.

Certificat Let's Encrypt impossible à générer

Vérifiez que le port 80 est ouvert et que votre domaine pointe bien vers l'IP du VPS :

dig +short votre-domaine.com

Cloudflare doit être en mode DNS only (nuage gris) pendant la génération du certificat, pas en mode proxy.

Conteneur qui crash

Inspectez les logs :

sudo docker logs nginx-proxy-manager --tail 100

Commandes utiles

# Logs en temps réel
sudo docker logs -f nginx-proxy-manager

# Redémarrer NPM
sudo docker compose restart

# Mettre à jour NPM
sudo docker compose pull && sudo docker compose up -d

# Sauvegarder la config
sudo tar -czf npm-backup-$(date +%F).tar.gz data letsencrypt

Conclusion

Nginx Proxy Manager simplifie radicalement la gestion d'un reverse proxy multi-domaines. Combiné à Docker, vous pouvez désormais héberger autant de services que votre VPS peut en supporter, chacun avec son propre certificat SSL et son propre sous-domaine.

Ressources

Rejoignez notre serveur communautaire Discord

Pour toute question, suggestion ou simplement pour discuter avec la communauté, rejoignez-nous sur Discord !

900+Membres