Description
DweebUI est une interface web de gestion Docker moderne, écrite en TypeScript/React avec un backend Node.js. Elle permet de gérer conteneurs, images, volumes, networks, et stacks Compose, le tout depuis un navigateur. L'UI est plus « Material » que celle de [[app-dockge|Dockge]] et se positionne comme une alternative plus simple à [[app-portainer|Portainer]].
L'idée : proposer une expérience « Docker Desktop-like » mais self-hosted, sans le côté enterprise de Portainer, et avec un focus sur l'usage personnel / homelab.
- ✅ Gestion des conteneurs : start, stop, restart, kill, pause, unpause, exec shell
- ✅ Logs en temps réel dans l'UI, avec recherche et téléchargement
- ✅ Inspect : détails complets (env, mounts, network) en JSON
- ✅ Stacks Compose : import, edit, deploy un
docker-compose.ymldepuis l'UI - ✅ Pull / push / remove d'images, prune automatique
- ✅ Volumes & networks : visualisation et suppression
- ✅ Multi-utilisateurs : auth intégrée, rôles admin/user
- ✅ Thèmes : dark/light mode
- ✅ Stats CPU/RAM live par conteneur
DweebUI vs [[app-portainer|Portainer]] : Portainer est enterprise-grade (RBAC, Kubernetes, Edge agents) ; DweebUI est homedlab-grade (Docker only, plus simple, plus joli). DweebUI vs [[app-dockge|Dockge]] : Dockge est ultra-minimal (Compose-only) ; DweebUI couvre tout (conteneurs, images, volumes, networks, stacks). DweebUI vs [[app-arcane|Arcane]] : projets très similaires, design comparable, choisir selon l'affinité UI.
Installation
Docker Compose (recommandé)
# docker-compose.yml
version: '3.8'
services:
dweebui:
image: ghcr.io/lllllllillllllillll/dweebui:latest
container_name: dweebui
restart: unless-stopped
ports:
- "8000:8000" # Web UI
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro # ou :rw si on veut deploy
- dweebui-data:/app/server/db
environment:
- TZ=Europe/Paris
- PORT=8000
labels:
- "traefik.enable=true"
- "traefik.http.routers.dweebui.rule=Host(`dweebui.example.com`)"
- "traefik.http.routers.dweebui.entrypoints=websecure"
- "traefik.http.routers.dweebui.tls.certresolver=letsencrypt"
volumes:
dweebui-data:
Standalone (Node.js)
git clone https://github.com/lllllllillllllillll/DweebUI.git cd DweebUI && npm install && npm run build npm start
Configuration
- Choisir le mode de socket :
ro(lecture seule, plus sûr) ourw(deploy depuis l'UI) - Lancer DweebUI :
docker compose up -d - Accéder à l'UI :
http://IP:8000— créer le compte admin au premier lancement - Vérifier la connexion Docker : DweebUI liste tous vos conteneurs existants
- Tester une action : sélectionner un conteneur, faire Start/Stop/Restart
- Importer un stack Compose (si mode
rw) : menu « Stacks » > Uploaddocker-compose.yml - Créer un second utilisateur si multi-personnes (rôle « user » pour consultation seule)
Alternatives
Open Source
- [[app-portainer|Portainer]] — référence, plus complet, plus complexe
- [[app-dockge|Dockge]] — ultra-minimaliste, Compose-only
- [[app-yacht|Yacht]] — orienté templates / 1-click deploy
- [[app-arcane|Arcane]] — concurrent direct en Go + Svelte
- [[app-dweebui|DweebUI]] — lui-même
Comparaison DweebUI vs alternatives
| Critère | DweebUI | Portainer | Dockge | Arcane | Yacht |
|---|---|---|---|---|---|
| Setup | 3 min | 5 min | 2 min | 3 min | 5 min |
| UI design | Moderne | Classique | Minimal | Moderne | Rétro |
| Compose | ✅ | ✅ | ✅ (natif) | ✅ | ✅ |
| Multi-user | ✅ | ✅ (RBAC) | ❌ | ⚠️ | ❌ |
| K8s | ❌ | ✅ | ❌ | ❌ | ❌ |
| Templates | ❌ | ✅ | ❌ | ❌ | ✅ (fort) |
| RAM idle | ~150 Mo | ~200 Mo | ~50 Mo | ~100 Mo | ~150 Mo |
Verdict : DweebUI est un excellent choix moderne pour un homelab qui veut une GUI complète sans la complexité de Portainer. Si vous aimez le « look & feel » Material, vous serez conquis.
Propriétaires (ce que DweebUI remplace)
- Docker Desktop (propriétaire, lourd, requiert une licence entreprise pour les grandes orgos)
- Portainer Business (payant pour certaines features)
- Synology Container Manager (propriétaire, lié à DSM)
Sécurité
- ⚠️ Socket Docker :
roest fortement recommandé pour un usage personnel ;rwest requis si on veut déployer depuis l'UI - Auth forte : DweebUI supporte l'auth locale + peut être mis derrière [[app-authelia|authelia]] / [[app-authentik|authentik]] pour du SSO
- Exposer sur Internet : déconseillé même avec auth — préférer un VPN ([[app-wireguard|wireguard]], [[app-tailnet|tailscale]])
- Mises à jour : garder DweebUI à jour ; c'est un composant d'administration sensible

