162 lines
6.9 KiB
Markdown
162 lines
6.9 KiB
Markdown
---
|
|
title: Dockge
|
|
created: 2026-06-07
|
|
updated: 2026-06-07
|
|
type: app
|
|
tags: [catalogue, docker, container, ui, compose, self-hosted, beginner]
|
|
confidence: high
|
|
contested: false
|
|
sources: [https://selfh.st/apps/?tag=Docker, https://github.com/louislam/dockge]
|
|
---
|
|
|
|
# 🐳 Dockge
|
|
|
|
> **Le gestionnaire de stacks docker-compose *self-contained* et élégant** — par l'auteur d'Uptime Kuma. Compose avant tout, sans la complexité de Portainer.
|
|
|
|
## 📋 Informations Générales
|
|
|
|
| Champ | Valeur |
|
|
| :--- | :--- |
|
|
| **Site web** | [dockge.kuma.pet](https://dockge.kuma.pet/) |
|
|
| **GitHub** | [louislam/dockge](https://github.com/louislam/dockge) |
|
|
| **License** | MIT |
|
|
| **Langage** | TypeScript (Node.js + React) |
|
|
| **Étoiles GitHub** | 23,4k ⭐ |
|
|
| **Dernière MAJ** | 2026-06-07 |
|
|
| **Catégorie** | [[cat-docker\|Docker]] |
|
|
|
|
## 📝 Description
|
|
|
|
**Dockge** est un **gestionnaire de stacks docker-compose** créé par Louis (le créateur d'[[app-uptime-kuma]]). Sa philosophie est simple : **un fichier `docker-compose.yml` self-contained par stack, géré via une UI web réactive**. Pas de base de données propriétaire, pas de format interne — quand vous retirez Dockge, vos stacks continuent de tourner avec un banal `docker compose up -d`.
|
|
|
|
L'interface est **réactive en temps réel** : vous éditez le Compose, vous cliquez sur *Deploy*, et la sortie stdout/stderr du déploiement apparaît en direct, façon terminal. Dockge sait aussi convertir un `docker run` en stack Compose via son bouton dédié.
|
|
|
|
- ✅ **Format `docker-compose.yml` pur** — pas de verrouillage propriétaire
|
|
- ✅ **Stacks self-contained** : chaque stack a son propre dossier `compose.yaml`
|
|
- ✅ **Éditeur Monaco** avec coloration syntaxique YAML
|
|
- ✅ **Logs en streaming** temps réel (WebSocket)
|
|
- ✅ **Convertisseur `docker run` → `docker-compose.yml`**
|
|
- ✅ **Gestion des images, volumes, réseaux, conteneurs**
|
|
- ✅ **Notifications** (Discord, Telegram, Slack, email…) sur événements de stack
|
|
- ✅ **Mode agent** : piloter un hôte Docker distant
|
|
- ✅ **UI mobile-responsive** (no app native)
|
|
- ✅ **Pas de base de données** : tout est dans le dossier `dockge/`
|
|
|
|
**Public cible** : **homelabers qui vivent dans le `docker-compose.yml`**. Si vous êtes allergique aux UI lourdes et voulez un outil qui respecte le standard Docker, Dockge est fait pour vous.
|
|
|
|
**Alternatives directes** : [[app-portainer]] (plus complet, plus lourd), [[app-yacht]] (UI 1-click, peu maintenue), [[app-arcane]] (plus moderne, plus jeune).
|
|
|
|
## 🚀 Installation
|
|
|
|
### Option 1 : Docker Compose (ultra-simple, dogfooding)
|
|
|
|
```yaml
|
|
# docker-compose.yml
|
|
version: '3.8'
|
|
services:
|
|
dockge:
|
|
image: louislam/dockge:latest
|
|
container_name: dockge
|
|
restart: unless-stopped
|
|
security_opt:
|
|
- no-new-privileges:true
|
|
ports:
|
|
- "5001:5001"
|
|
volumes:
|
|
- /var/run/docker.sock:/var/run/docker.sock # ⚠️ voir section Sécurité
|
|
- /opt/stacks:/opt/stacks # vos stacks
|
|
- /opt/dockge:/app/data # config Dockge
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.http.routers.dockge.rule=Host(`dockge.example.com`)"
|
|
- "traefik.http.routers.dockge.entrypoints=websecure"
|
|
- "traefik.http.routers.dockge.tls.certresolver=letsencrypt"
|
|
|
|
volumes:
|
|
# si volume nommé pour la data, décommentez ci-dessous
|
|
# dockge_data:
|
|
```
|
|
|
|
> 📁 **Convention** : Dockge stocke vos stacks dans `/opt/stacks/<nom-de-stack>/compose.yaml`. Le dossier est versionnable (git) et lisible hors Dockge.
|
|
|
|
### Option 2 : one-liner (la voie rapide)
|
|
|
|
```bash
|
|
mkdir -p /opt/stacks /opt/dockge
|
|
docker run -d --name dockge --restart=unless-stopped \
|
|
-p 5001:5001 \
|
|
-v /var/run/docker.sock:/var/run/docker.sock \
|
|
-v /opt/stacks:/opt/stacks \
|
|
-v /opt/dockge:/app/data \
|
|
louislam/dockge:latest
|
|
```
|
|
|
|
## ⚙️ Configuration Initiale
|
|
|
|
1. **Accéder à l'UI** : `http://IP:5001`
|
|
2. **Créer le compte admin** (premier démarrage uniquement)
|
|
3. **Créer votre première stack** : *Compose > New Stack* > nommez-la > collez un `compose.yaml`
|
|
4. **Cliquer *Deploy*** : la sortie de `docker compose up -d` s'affiche en streaming
|
|
5. **Ajouter un `docker run` existant** : *Convert* > coller la commande > Dockge génère le Compose
|
|
6. **Activer les notifications** : *Settings > Notifications* (optionnel mais recommandé pour les crashs)
|
|
|
|
## 🔄 Alternatives
|
|
|
|
### Open Source
|
|
|
|
- [[app-portainer]] — Plus complet (K8s, multi-host, RBAC) mais plus lourd
|
|
- [[app-yacht]] — Templating 1-click, peu maintenu
|
|
- [[app-arcane]] — UI moderne Svelte, docker + compose
|
|
- **CasaOS** — Plus qu'un gestionnaire Docker (apps store complet)
|
|
- **Cosmos** — Cloud personnel self-hosted
|
|
|
|
### Propriétaires
|
|
|
|
- **Docker Desktop** — UI locale, pas self-hosted
|
|
- **Portainer Business** — Version payante de Portainer
|
|
- **Synology Container Manager** — UI native Synology (propriétaire)
|
|
|
|
### Tableau comparatif
|
|
|
|
| Critère | Dockge | Portainer CE | Yacht | Arcane | Komodo |
|
|
| :--- | :--- | :--- | :--- | :--- | :--- |
|
|
| Format | `compose.yaml` | DB interne + Compose | Templating | Compose | Compose |
|
|
| Multi-host | ✅ (agent) | ✅ (agent) | ❌ | ❌ | ✅ (natif) |
|
|
| K8s | ❌ | ✅ | ❌ | ❌ | ❌ |
|
|
| Logs streaming | ✅ | ✅ | Basique | ✅ | ✅ |
|
|
| Sans DB | ✅ | ❌ | ❌ | ❌ | ❌ |
|
|
| Mobile-friendly | ✅ | ⚠️ | ❌ | ✅ | ✅ |
|
|
| Licence | MIT | Zlib (CE) | MIT | Apache-2.0 | GPL-3.0 |
|
|
| Interface | Élégante | Classique | Simple | Très moderne | Moderne |
|
|
|
|
**Verdict** : **Dockge est l'outil idéal** pour un homelab qui veut **rester proche du standard `docker-compose.yml`** sans la complexité d'un Portainer. Parfait pour les stacks simples à moyennes.
|
|
|
|
## 🔐 Sécurité
|
|
|
|
- ⚠️ **Le socket Docker est monté en RW** : Dockge peut démarrer/arrêter n'importe quel conteneur, créer des images, etc. = **privilèges root sur l'hôte**.
|
|
- **Placer Dockge derrière [[app-traefik]] + Authelia/Authentik** — ne jamais l'exposer en clair.
|
|
- **Alternative sécurisée** : utiliser [[app-docker-socket-proxy]] (Tecnativa) en filtre. Exemple :
|
|
```yaml
|
|
volumes:
|
|
- /var/run/docker.sock:/var/run/docker.sock # à remplacer par :
|
|
- dockge_proxy:/var/run/docker.sock:ro
|
|
```
|
|
puis faire pointer Dockge sur le proxy au lieu du socket direct.
|
|
- **Restreindre les utilisateurs** : Dockge n'a pas (encore) de RBAC multi-utilisateurs — limiter l'accès au réseau interne + VPN (Tailscale/WireGuard).
|
|
|
|
## 📚 Ressources
|
|
|
|
- [GitHub louislam/dockge](https://github.com/louislam/dockge)
|
|
- [Site officiel](https://dockge.kuma.pet/)
|
|
- [Documentation](https://github.com/louislam/dockge#readme)
|
|
- [Démo live](https://demo.dockge.kuma.pet/)
|
|
|
|
## Pages Liées
|
|
- [[cat-docker]] — Catégorie Docker
|
|
- [[app-portainer]] — Alternative plus complète
|
|
- [[app-yacht]] — Alternative templating
|
|
- [[app-traefik]] — Reverse proxy
|
|
- [[app-docker-socket-proxy]] — Sécuriser le socket
|
|
- [[recettes-docker-compose]] — Templates Compose
|
|
- [[securisation-home-lab]] — Durcir l'infra
|