--- 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