Files
wiki/Catalogue-Self-Hosted/apps/app-nginx-proxy-manager.md
2026-06-09 18:40:21 +02:00

4.4 KiB


title: Nginx Proxy Manager created: 2026-06-06 updated: 2026-06-06 type: app tags: [catalogue, reverse-proxy, gui, nginx, typescript, beginner] confidence: high contested: false sources: [https://selfh.st/apps/?tag=Reverse+Proxy, https://nginxproxymanager.com/]

🚦 Nginx Proxy Manager

Interface graphique pour gérer Nginx comme reverse proxy. La solution parfaite pour les débutants qui veulent une GUI plutôt qu'un fichier de config.

📋 Informations Générales

Champ Valeur
Site web nginxproxymanager.com
GitHub NginxProxyManager/nginx-proxy-manager
License MIT
Langage TypeScript (frontend), Nginx (proxy)
Étoiles GitHub 33k
Dernière MAJ 2026-06-04
Catégorie [[cat-reverse-proxy

📝 Description

Nginx Proxy Manager (NPM) est un wrapper GUI au-dessus de Nginx. Il permet de :

  • Ajouter des proxy hosts via interface web (pas de fichier de config)
  • Gérer les certificts SSL (Let's Encrypt automatique)
  • Redirections (301/302)
  • Streams TCP/UDP (depuis v2.10+)
  • Access lists (whitelist/blacklist par IP)
  • User management (multi-utilisateurs)
  • 401 authentication (basic auth) devant n'importe quel service
  • Nginx de base toujours accessible (custom locations)

Public cible : débutants, sysadmins qui ne veulent pas éditer de YAML, ou équipes qui veulent un admin GUI.

🚀 Installation

Docker Compose (recommandé)

# docker-compose.yml
version: '3.8'
services:
  nginx-proxy-manager:
    image: jc21/nginx-proxy-manager:latest
    container_name: nginx-proxy-manager
    restart: unless-stopped
    ports:
      - "80:80"     # HTTP
      - "443:443"   # HTTPS
      - "81:81"     # Admin UI
    environment:
      DB_SQLITE_FILE: "/data/database.sqlite"
      DISABLE_IPV6: "true"
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt

Configuration Initiale

  1. Accéder à l'admin : http://IP_DU_SERVEUR:81
  2. Login par défaut :
    • Email : admin@example.com
    • Password : changeme
  3. Changer immédiatement le mot de passe
  4. Ajouter un Proxy Host :
    • Domaines : app.example.com
    • Scheme : http ou https
    • Forward Hostname : app-internal (nom du conteneur)
    • Forward Port : 8080
    • Activer "Block Common Exploits"
    • Activer "Websockets Support" si besoin
    • Onglet SSL : Request a new SSL Certificate (Let's Encrypt)

⚙️ Configuration Avancée

Access Lists (whitelist IP)

  • Proxy Hosts → Edit → Access List
  • Créer une liste : "Home" = mes IPs
  • Appliquer aux services sensibles

Custom Nginx Config

  • Onglet "Advanced" : permet d'ajouter des directives Nginx custom
  • Exemple : client_max_body_size 100M; pour les uploads

🔄 Alternatives

Open Source

  • app-traefik — Auto-discovery (plus "DevOps")
  • app-caddy — Plus simple pour config statique
  • app-nginx-proxy — nginx-proxy (junior, sans GUI)
  • NPMplus — Fork avec extras (geo-blocking, fail2ban)

Comparaison NPM vs Traefik

Critère NPM Traefik
GUI Complète Dashboard only
Auto-discovery
Let's Encrypt
Config Via GUI Labels Docker
Public cible Débutants DevOps
Access lists Built-in Middleware
Custom Nginx

Verdict :

  • NPM si vous aimez les GUI et voulez un contrôle manuel
  • Traefik si vous voulez que tout soit automatique (ajout de service = label)

Propriétaires (ce que NPM remplace)

  • Cloudflare Pro (en partie)
  • RunCloud, ServerPilot (GUI de gestion Nginx payante)

🔐 Sécurité

  • SSL/TLS moderne
  • Access lists par IP
  • Block common exploits (SQL injection, XSS basiques)
  • Authentification (Basic, multi-users)

📚 Ressources

Pages Liées