Initial vault setup
This commit is contained in:
@@ -0,0 +1,179 @@
|
||||
---
|
||||
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
|
||||
Reference in New Issue
Block a user