180 lines
7.2 KiB
Markdown
180 lines
7.2 KiB
Markdown
---
|
|
title: Nginx UI
|
|
created: 2026-06-06
|
|
updated: 2026-06-06
|
|
type: app
|
|
tags: [catalogue, reverse-proxy, nginx, gui, web, go, vue, auto-hebergement]
|
|
confidence: high
|
|
contested: false
|
|
sources: [https://selfh.st/apps/?tag=Reverse+Proxy, https://github.com/0xJacky/nginx-ui]
|
|
---
|
|
# 🖥️ Nginx UI
|
|
|
|
> **Interface web pour gérer Nginx** sans toucher aux fichiers de conf : édition de vhosts, monitoring serveur, Let's Encrypt intégré, terminal web, support cluster. Le pendant moderne et plus complet de Nginx Proxy Manager, mais pour utilisateurs qui veulent **rester sur du Nginx pur**.
|
|
|
|
## 📋 Informations Générales
|
|
|
|
| Champ | Valeur |
|
|
| :--- | :--- |
|
|
| **Site web** | [nginxui.com](https://nginxui.com/) |
|
|
| **GitHub** | [0xJacky/nginx-ui](https://github.com/0xJacky/nginx-ui) |
|
|
| **License** | AGPL-3.0 |
|
|
| **Langage** | Go, Vue, TypeScript |
|
|
| **Étoiles GitHub** | 11.2k ⭐ |
|
|
| **Dernière MAJ** | 2026-06-04 |
|
|
| **Catégorie** | [[cat-reverse-proxy|Reverse Proxy]], [[cat-gui|GUI]] |
|
|
|
|
## 📝 Description
|
|
|
|
**Nginx UI** est une **GUI web complète** pour administrer Nginx. Au lieu d'éditer `nginx.conf` à la main, vous avez une interface moderne qui fait tout : édition de blocs, monitoring, backups auto, Let's Encrypt, terminal web, et même un assistant IA (ChatGPT / Deepseek).
|
|
|
|
**Caractéristiques** :
|
|
|
|
- ✅ **Éditeur visuel de configs** : `NgxConfigEditor` maison, colorisation syntaxique, autocomplete
|
|
- ✅ **Monitoring serveur** : CPU, RAM, load average, disque en temps réel
|
|
- ✅ **Let's Encrypt en 1 clic** : intégration Caddy-like, renouvellement automatique
|
|
- ✅ **Backup automatique** des configs avec versioning et restauration
|
|
- ✅ **Cluster management** : pousser une config sur plusieurs nodes Nginx d'un coup
|
|
- ✅ **Terminal web** : accès shell depuis l'UI
|
|
- ✅ **Log viewer** : logs Nginx en streaming
|
|
- ✅ **ChatGPT / Deepseek intégré** : assistant IA pour aider à écrire/optimiser les configs
|
|
- ✅ **MCP (Model Context Protocol)** : permet à des agents IA d'interagir avec Nginx UI
|
|
- ✅ **Multi-plateforme** : Linux, macOS, Windows, ARM, OpenWrt, FreeBSD
|
|
- ✅ **Single binary** (hors Docker) : pas de dépendances système
|
|
|
|
**Positionnement** : c'est l'**alternative moderne à Nginx Proxy Manager**. Comparaison rapide :
|
|
- **Nginx UI** : éditeur de conf en texte, plus technique, plus de fonctionnalités, IA, cluster
|
|
- **Nginx Proxy Manager** : formulaires web, plus grand public, plus simple pour les débutants, SSL facile
|
|
|
|
**Public cible** : admins qui veulent **la puissance de Nginx** (configs custom) avec **la commodité d'une GUI** et qui n'ont pas peur de voir la conf sous-jacente.
|
|
|
|
> ⚠️ **AGPL-3.0** : c'est une licence copyleft forte. Pour un usage personnel/self-hosted c'est OK, mais en entreprise il faut évaluer l'impact (toute modification doit être publiée).
|
|
|
|
## 🚀 Installation
|
|
|
|
### Option 1 : Docker Compose (recommandé)
|
|
|
|
```yaml
|
|
# docker-compose.yml
|
|
version: '3.8'
|
|
services:
|
|
nginx-ui:
|
|
image: uozi/nginx-ui:latest
|
|
container_name: nginx-ui
|
|
restart: unless-stopped
|
|
environment:
|
|
- TZ=Europe/Paris
|
|
volumes:
|
|
- ./nginx:/etc/nginx # Configs Nginx
|
|
- ./nginx-ui:/etc/nginx-ui # Données Nginx UI
|
|
- /var/www:/var/www # Sites statiques (optionnel)
|
|
- /var/run/docker.sock:/var/run/docker.sock # Optionnel : voir les conteneurs
|
|
ports:
|
|
- "8080:80" # Port UI par défaut
|
|
- "8443:443" # HTTPS optionnel
|
|
networks:
|
|
- proxy
|
|
|
|
networks:
|
|
proxy:
|
|
name: proxy
|
|
```
|
|
|
|
> ⚠️ **Au premier lancement**, le dossier `./nginx` doit être **vide** ou contenir uniquement les configs par défaut. Nginx UI va le prendre en main.
|
|
|
|
### Variante Traefik (reverse proxy devant Nginx UI)
|
|
|
|
```yaml
|
|
# docker-compose.yml
|
|
version: '3.8'
|
|
services:
|
|
traefik:
|
|
# ... votre Traefik habituel
|
|
|
|
nginx-ui:
|
|
image: uozi/nginx-ui:latest
|
|
restart: unless-stopped
|
|
environment:
|
|
- TZ=Europe/Paris
|
|
volumes:
|
|
- ./nginx:/etc/nginx
|
|
- ./nginx-ui:/etc/nginx-ui
|
|
- /var/run/docker.sock:/var/run/docker.sock
|
|
networks: [proxy]
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.http.routers.nginx-ui.rule=Host(`nginx.example.com`)"
|
|
- "traefik.http.routers.nginx-ui.entrypoints=websecure"
|
|
- "traefik.http.routers.nginx-ui.tls.certresolver=letsencrypt"
|
|
- "traefik.http.services.nginx-ui.loadbalancer.server.port=80"
|
|
```
|
|
|
|
### Option 2 : Binaire natif (Linux)
|
|
|
|
```bash
|
|
# Install/upgrade
|
|
bash -c "$(curl -L https://cloud.nginxui.com/install.sh)" @ install
|
|
|
|
# Démarrer
|
|
nginx-ui -config app.ini
|
|
|
|
# Port par défaut : 9000
|
|
# HTTP Challenge port : 9180 (pour Let's Encrypt)
|
|
```
|
|
|
|
## ⚙️ Configuration Initiale
|
|
|
|
1. **Accéder à l'UI** : `http://IP_DU_SERVEUR:8080/install`
|
|
2. **Créer le compte admin** (premier démarrage uniquement)
|
|
3. **Explorer les sections** :
|
|
- **Dashboard** : monitoring serveur en temps réel
|
|
- **Configs** : `nginx.conf`, sites-available, sites-enabled
|
|
- **Sites** : éditeur visuel par site
|
|
- **SSL** : certificats Let's Encrypt
|
|
- **Logs** : streaming des logs Nginx
|
|
- **Terminal** : shell web (attention sécurité !)
|
|
4. **Activer Let's Encrypt** : onglet SSL → New Certificate → entrer le domaine
|
|
5. **Backup** : configurer la fréquence dans Settings → Backup
|
|
6. **Cluster** (avancé) : ajouter d'autres nodes Nginx pour push de config distant
|
|
|
|
> 💡 **Convention de fichiers** : Nginx UI suit le standard Debian : `sites-available/` avec symlinks dans `sites-enabled/`. Pour les autres distros, ajuster `nginx.conf` pour inclure ces dossiers.
|
|
|
|
## 🔄 Alternatives
|
|
|
|
### Open Source
|
|
- [[app-nginx-proxy-manager]] — Concurrent direct, plus simple, formulaires web
|
|
- [[app-caddy]] — Reverse proxy, pas de GUI mais Caddyfile très simple
|
|
- [[app-traefik]] — Reverse proxy moderne, dashboard mais orienté Docker
|
|
- **NginxProxyManager** (même projet, alias)
|
|
- **Ajenti** — GUI sysadmin généraliste (supporte Nginx)
|
|
|
|
### Propriétaires
|
|
- **Cloudflare** (CDN + reverse proxy managé)
|
|
- **Caddy Studio** (non-officiel)
|
|
- **RunCloud** / **Ploi.io** — serveurs web managés avec UI (Nginx + PHP)
|
|
|
|
## 🔐 Sécurité
|
|
|
|
- **2FA / TOTP** : recommandé, supporté nativement
|
|
- **HTTPS optionnel** : auto-signé par défaut, mettre un vrai cert
|
|
- **Terminal web** : désactivable, expose un shell (gros risque si exposé sans auth)
|
|
- **Cluster auth** : tokens dédiés pour les nodes distants
|
|
- **Pas d'auth par défaut sur le port 80** : **toujours mettre derrière un reverse proxy + auth** si exposé sur Internet
|
|
- **Logs d'audit** : toutes les actions admin loggées
|
|
|
|
> ⚠️ **Recommandation** : ne jamais exposer Nginx UI directement sur Internet. Toujours le mettre **derrière Traefik/Caddy** avec auth (Cloudflare Access, Authelia, Basic Auth).
|
|
|
|
## 📚 Ressources
|
|
|
|
- [Documentation officielle](https://nginxui.com/)
|
|
- [Démo en ligne](https://demo.nginxui.com/) — `admin` / `admin`
|
|
- [GitHub Releases](https://github.com/0xJacky/nginx-ui/releases)
|
|
- [Weblate (traductions)](https://weblate.nginxui.com/)
|
|
|
|
## Pages Liées
|
|
- [[cat-reverse-proxy]] — Catégorie Reverse Proxy
|
|
- [[app-nginx-proxy-manager]] — Concurrent direct
|
|
- [[app-caddy]] — Alternative plus simple
|
|
- [[app-traefik]] — Combinable en frontal
|
|
- [[comparatif-reverse-proxy]] — Comparaison détaillée
|