4.4 KiB
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
- Accéder à l'admin :
http://IP_DU_SERVEUR:81 - Login par défaut :
- Email :
admin@example.com - Password :
changeme
- Email :
- Changer immédiatement le mot de passe
- Ajouter un Proxy Host :
- Domaines :
app.example.com - Scheme :
httpouhttps - 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)
- Domaines :
⚙️ 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
- cat-reverse-proxy — Catégorie Reverse Proxy
- app-traefik — Concurrent auto-discovery
- app-caddy — Concurrent simple
- securisation-home-lab — Sécurité