Files
2026-06-09 18:40:21 +02:00

7.2 KiB


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

📝 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é)

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

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

# 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

Pages Liées