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

139 lines
4.4 KiB
Markdown

---
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](https://nginxproxymanager.com/) |
| **GitHub** | [NginxProxyManager/nginx-proxy-manager](https://github.com/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|Reverse Proxy]], Web Server |
## 📝 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é)
```yaml
# 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
- [Documentation officielle](https://nginxproxymanager.com/setup/)
- [GitHub NginxProxyManager](https://github.com/NginxProxyManager/nginx-proxy-manager)
- [Communauté Discourse](https://community.nginxproxymanager.com/)
## Pages Liées
- [[cat-reverse-proxy]] — Catégorie Reverse Proxy
- [[app-traefik]] — Concurrent auto-discovery
- [[app-caddy]] — Concurrent simple
- [[securisation-home-lab]] — Sécurité