139 lines
4.4 KiB
Markdown
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é
|