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