Dockge auf dem Synology NAS installieren: Docker-Compose-Stacks einfach verwalten
Dockge bringt eine schlanke Web-UI für Docker-Compose-Stacks aufs Synology NAS. Diese Anleitung zeigt SSH-Setup, Ordnerstruktur, die kritische Pfad-Symmetrie in der compose.yaml und den Import bestehender Stacks – mit Verifikationsschritt nach jedem Abschnitt.

Wer auf einem Synology NAS mehrere Docker-Compose-Stacks betreibt, kennt das Problem: Die Übersicht geht schnell verloren, wenn Stacks über SSH, den eingebauten Container Manager und vielleicht noch Portainer verteilt sind. Dockge löst genau dieses Problem. Die schlanke Web-UI des Uptime-Kuma-Entwicklers Louis Lam (louislam) läuft selbst als Container, greift über den Docker-Socket auf den Synology-Daemon zu und gibt dir eine saubere Oberfläche, über die du alle compose-basierten Stacks starten, stoppen, bearbeiten und deployen kannst – ohne Overhead, ohne Lock-in.
Voraussetzungen
- Synology NAS mit DSM 7.2 oder höher
- Container Manager im Synology Package Center installiert (Nachfolger des Docker-Pakets)
- Mindestens 512 MB freier RAM (Dockge selbst ist sehr leichtgewichtig)
- SSH-Zugang in DSM aktiviert: Systemsteuerung → Terminal & SNMP → SSH-Dienst aktivieren
- Admin-Rechte per SSH (root oder sudo)
- Internetverbindung zum Herunterladen des Images von Docker Hub
- Freier Host-Port – empfohlen: 5571 (Synology DSM und andere Dienste nutzen oft Port 5001)
- Ausreichend Speicherplatz auf
/volume1für Konfigurationsdateien (minimal, da nur YAML-Dateien)
Schritt 1: SSH-Zugang aktivieren und verbinden
Öffne das DSM-Webinterface und navigiere zu Systemsteuerung → Terminal & SNMP. Aktiviere den Haken bei „SSH-Dienst aktivieren" und bestätige mit „Anwenden". Port 22 ist der Standard – du kannst ihn auf einen benutzerdefinierten Port verlegen, wenn du möchtest.
Verbinde dich anschließend von deinem Rechner aus mit dem NAS. Unter Windows bietet sich das Windows Terminal an, unter macOS und Linux das eingebaute Terminal:
ssh admin@192.168.1.100 -p 22Ersetze 192.168.1.100 durch die IP-Adresse deines NAS. Nach dem Login musst du für Docker-Befehle zu root wechseln:
sudo -iVerifizieren: Nach sudo -i zeigt die Shell-Eingabeaufforderung root@<NAS-Hostname>:~#. Teste außerdem, ob Docker erreichbar ist:
docker --versionErwartete Ausgabe (Versionsnummer kann abweichen):
Docker version 24.0.x, build xxxxxxxWenn der Befehl fehlschlägt, ist der Container Manager im Package Center nicht installiert oder der Dienst läuft nicht.
Schritt 2: Ordnerstruktur anlegen
Eine saubere, einheitliche Ordnerstruktur verhindert spätere Pfadprobleme. Alle Docker-Daten liegen unter /volume1/docker/, Dockge bekommt einen eigenen Unterordner:
mkdir -p /volume1/docker/dockge/data
mkdir -p /volume1/docker/dockge/stacksDer Ordner data nimmt Dockges eigene App-Daten auf (Datenbank, Einstellungen). Der Ordner stacks ist das zentrale Stack-Verzeichnis – hier legt Dockge für jeden Stack einen Unterordner mit der zugehörigen compose.yaml an.
Verifizieren: Prüfe, dass beide Ordner angelegt wurden:
ls -la /volume1/docker/dockge/Erwartete Ausgabe:
drwxr-xr-x data
drwxr-xr-x stacksSchritt 3: compose.yaml erstellen
Wechsle in das Dockge-Verzeichnis und erstelle die compose.yaml. Der kritischste Punkt ist der Volume-Mount für das Stack-Verzeichnis: Der linke Pfad (Host) muss exakt dem rechten Pfad (Container) entsprechen. Dies ist eine bewusste Design-Entscheidung von Dockge – da der Container die Pfade intern genauso referenzieren muss wie auf dem Host. Ein asymmetrischer Mount führt dazu, dass Dockge Dateien an falschen Orten sucht oder ablegt.
cd /volume1/docker/dockge
vi compose.yamlFüge folgenden Inhalt ein (in vi: i zum Einfügen, nach dem Einfügen ESC, dann :wq zum Speichern):
services:
dockge:
image: louislam/dockge:1
restart: unless-stopped
ports:
- 5571:5001
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /volume1/docker/dockge/data:/app/data
# KRITISCH: Linker Pfad MUSS gleich rechtem Pfad sein!
- /volume1/docker/dockge/stacks:/volume1/docker/dockge/stacks
environment:
# Muss exakt dem rechten (Container-)Pfad des stacks-Mounts entsprechen
- DOCKGE_STACKS_DIR=/volume1/docker/dockge/stacksDas Image louislam/dockge:1 ist ein sogenanntes Moving-Tag: Es zeigt immer auf die neueste Version im 1.x-Zweig (aktuell 1.5.0, Stand März 2025). Der interne Container-Port 5001 wird auf Host-Port 5571 gemappt, um Kollisionen mit anderen Synology-Diensten zu vermeiden.
Verifizieren: Lass dir die Datei anzeigen, um Tippfehler auszuschließen:
cat /volume1/docker/dockge/compose.yamlPrüfe besonders, dass bei volumes der stacks-Eintrag links und rechts identisch ist und dass DOCKGE_STACKS_DIR exakt dem rechten Pfad entspricht.
Schritt 4: Dockge starten
Starte den Container mit Docker Compose. Der Befehl muss im Verzeichnis ausgeführt werden, das die compose.yaml enthält:
cd /volume1/docker/dockge
docker compose up -dBeim ersten Start lädt Docker das Image von Docker Hub herunter – je nach Internetverbindung dauert das zwischen 30 Sekunden und einigen Minuten. Du siehst Ausgaben wie Pulling dockge ... done und abschließend Container dockge-dockge-1 Started.
Verifizieren: Prüfe, ob der Container läuft:
docker ps | grep dockgeErwartete Ausgabe (gekürzt):
... louislam/dockge:1 ... Up X seconds ... 0.0.0.0:5571->5001/tcp ... dockge-dockge-1Steht dort Up, läuft der Container. Falls Restarting angezeigt wird, liegt ein Konfigurationsfehler vor – prüfe die Logs mit docker logs dockge-dockge-1.
Schritt 5: Firewall-Regel anlegen und Dockge im Browser öffnen
Falls du die Synology-Firewall aktiviert hast, musst du Port 5571 freischalten. Gehe in DSM zu Systemsteuerung → Sicherheit → Firewall → Regeln bearbeiten. Lege eine neue Regel an: Protokoll TCP, Port 5571, Quelle nach Bedarf (LAN oder spezifische IP), Aktion „Zulassen".
Öffne anschließend deinen Browser und rufe die Dockge-Oberfläche auf:
http://<NAS-IP>:5571Beim ersten Aufruf begrüßt dich Dockge mit einem Setup-Dialog. Lege dort deinen Admin-Benutzernamen und ein sicheres Passwort fest und klicke auf „Erstellen".
Verifizieren: Nach dem Login siehst du das Dockge-Dashboard. Im linken Bereich erscheint die Stack-Liste – sie ist zu diesem Zeitpunkt noch leer oder zeigt bereits vorhandene Container in ausgegrauter Form. Klicke auf das Zahnrad-Symbol oben rechts und prüfe unter „Settings", dass der angezeigte Stacks Directory-Pfad /volume1/docker/dockge/stacks lautet.
Schritt 6: Ersten neuen Stack in Dockge anlegen
Klicke in der Dockge-UI oben rechts auf „+ Compose". Gib einen Stack-Namen ein – ausschließlich Kleinbuchstaben und Bindestriche, da Dockge Ordnernamen mit Großbuchstaben nicht verarbeiten kann. Gib dann den Inhalt deiner compose.yaml im Editor ein und klicke auf „Deploy".
Dockge legt automatisch einen Unterordner unter /volume1/docker/dockge/stacks/<stackname>/ an und speichert dort die compose.yaml. Anschließend startet es den Stack via Docker Compose. Da Dockge jede Konfiguration als echte Datei auf dem Dateisystem ablegt, entsteht kein Lock-in und keine proprietäre Datenbank.
Verifizieren: Nach dem Deploy erscheint der Stack in der Liste mit dem Status „Running" (grüner Punkt). Prüfe auf der Kommandozeile:
ls /volume1/docker/dockge/stacks/Du solltest den Unterordner mit dem Stack-Namen sehen. Mit cat /volume1/docker/dockge/stacks/<stackname>/compose.yaml kannst du bestätigen, dass die Datei korrekt abgelegt wurde.
Schritt 7: Bestehende Stacks importieren
Stacks, die du bisher über den Container Manager, Portainer oder direkt per SSH angelegt hast, erscheinen in Dockge ausgegraut. Sie sind sichtbar, aber nicht vollständig verwaltbar – solange keine passende compose.yaml im Dockge-Stacks-Verzeichnis liegt.
Der Importprozess ist einfach:
# 1. Unterordner mit Stack-Namen anlegen (nur Kleinbuchstaben!)
mkdir -p /volume1/docker/dockge/stacks/meinstack
# 2. Vorhandene Compose-Datei hineinkopieren und auf compose.yaml umbenennen
cp /volume1/docker/meinstack/docker-compose.yml /volume1/docker/dockge/stacks/meinstack/compose.yamlWichtig: Dockge erwartet exakt den Dateinamen compose.yaml – nicht docker-compose.yml und nicht docker-compose.yaml.
Verifizieren: Lade die Dockge-UI im Browser neu (F5). Der Stack erscheint nun ohne Ausgrauung und zeigt den aktuellen Status des laufenden Containers. Dockge „adoptiert" laufende Container, ohne sie neu zu starten – kein Downtime erforderlich.
Schritt 8: Dockge aktualisieren
Da louislam/dockge:1 ein Moving-Tag ist, genügt ein einziger Update-Befehl, um stets die neueste 1.x-Version zu ziehen:
cd /volume1/docker/dockge
docker compose pull && docker compose up -dDocker lädt das neue Image herunter, stoppt den alten Container und startet einen neuen. Der gesamte Vorgang dauert in der Regel unter zwei Minuten. Alle Daten unter /volume1/docker/dockge/data und alle Stack-Dateien bleiben vollständig erhalten.
Verifizieren: Prüfe nach dem Update das Erstellungsdatum des laufenden Containers:
docker inspect dockge-dockge-1 --format '{{.Created}}'Das Datum sollte dem aktuellen Tag entsprechen. Alternativ zeigt docker ps unter „IMAGE" den aktuellen Tag louislam/dockge:1 an.
Alternative: Dockge über den Container Manager deployen
Wer den SSH-Zugang lieber nicht nutzen möchte, kann Dockge auch vollständig über die DSM-Oberfläche installieren. Erstelle zunächst die compose.yaml mit dem oben gezeigten Inhalt über die DSM File Station unter /volume1/docker/dockge/compose.yaml. Wechsle dann im DSM zu Container Manager → Projekt → Erstellen, vergib den Projektnamen „dockge", wähle als Pfad /volume1/docker/dockge und als Quelle „Vorhandene docker-compose.yaml verwenden". Klicke auf „Weiter" und bestätige den Deploy.
Beide Wege – SSH und Container Manager – führen zum identischen Ergebnis. Der SSH-Weg ist schneller und transparenter für Admins; der Container Manager-Weg kommt ohne Terminal aus.
Dockge vs. Portainer vs. Container Manager
| Merkmal | Dockge | Portainer CE | Container Manager |
|---|---|---|---|
| Fokus | compose.yaml-Stacks | Container, Stacks, Swarm, K8s | Container, Projekte (DSM-nativ) |
| Einzelne Container | Nicht sichtbar | Ja | Ja |
| Benutzer-/Rechteverwaltung | Nein | Ja (CE: begrenzt) | DSM-Benutzer |
| Ressourcenverbrauch | Sehr gering | Mittel | Im DSM integriert |
| Datei-Backend | Echte compose.yaml auf Disk | Proprietäre DB + Dateien | DSM-intern |
| Lock-in | Keiner | Gering | Synology-spezifisch |
| Ideal für | Reine compose-Umgebungen | Komplexe Multi-User-Setups | DSM-Integration, Einsteiger |
Troubleshooting / Typische Fehler
- Dockge startet, zeigt aber leere Stack-Liste oder Fehler beim Laden: Prüfe, ob
DOCKGE_STACKS_DIRexakt dem rechten Pfad desstacks-Volume-Mounts entspricht. Kontrolliere mitdocker inspect dockge-dockge-1die tatsächlichen Environment-Variablen und Mounts. - „permission denied on /var/run/docker.sock": Der Dockge-Container kann nicht mit dem Docker-Daemon kommunizieren. Stelle sicher, dass
/var/run/docker.sock:/var/run/docker.sockim Volume-Mount steht. Falls du einen nicht-root PUID verwendest, muss die Docker-Gruppe pergroup_addim Container hinzugefügt werden. - Stack-Ordner wird in Dockge nicht angezeigt: Ordnernamen mit Großbuchstaben (z. B.
Jellyfin,MyApp) werden von Dockge ignoriert. Benenne den Ordner in Kleinbuchstaben um (jellyfin,myapp) und lade die UI neu. - Compose-Datei wird nicht erkannt: Dockge erwartet exakt den Dateinamen
compose.yaml. Dateien mit den Namendocker-compose.ymloderdocker-compose.yamlwerden ignoriert. - Port 5001 bereits belegt: DSM oder ein anderer Container nutzen möglicherweise Port 5001. Ändere in der
compose.yamlden Host-Port (linke Seite) auf 5571 oder einen anderen freien Port – der Container-Port 5001 bleibt unverändert. - Dockge-UI bleibt leer hinter Reverse Proxy: Dockge nutzt WebSockets für die Echtzeit-Kommunikation. Der Reverse Proxy muss die Header
Upgrade: websocketundConnection: Upgradeweiterleiten. Im Synology Reverse Proxy findest du diese Option unter den erweiterten Einstellungen des Proxy-Eintrags. - „Restarting" statt „Up" in docker ps: Lies die Container-Logs:
docker logs dockge-dockge-1 --tail 50. Häufigste Ursachen sind ein falscher Pfad inDOCKGE_STACKS_DIRoder fehlende Schreibrechte auf/volume1/docker/dockge/data. - Image-Download schlägt fehl oder dauert sehr lange: Docker Hub hat ein Rate-Limit für anonyme Pulls. Prüfe mit
docker pull louislam/dockge:1vorab, ob der Download funktioniert. Bei Rate-Limiting hilft ein Docker-Hub-Login:docker login.
Häufige Fragen
Kann ich Dockge und den Container Manager gleichzeitig verwenden?
Ja, beide Werkzeuge greifen auf denselben Docker-Daemon zu und stören sich nicht gegenseitig. Stacks, die über den Container Manager erstellt wurden, erscheinen in Dockge ausgegraut – und umgekehrt sind Dockge-Stacks im Container Manager als externe Projekte sichtbar. Empfehlung: Neue Stacks nur noch in Dockge anlegen und bestehende Container-Manager-Projekte schrittweise über den Import-Prozess migrieren.
Was ist der Unterschied zwischen Dockge und Portainer?
Dockge ist bewusst auf compose.yaml-Stacks fokussiert und bleibt dadurch sehr schlank und übersichtlich. Portainer unterstützt deutlich mehr Funktionen – einzelne Container, Docker Swarm, Kubernetes, Benutzer- und Rechteverwaltung – ist dafür aber erheblich komplexer. Wer auf seinem Synology NAS ausschließlich mit Compose-Stacks arbeitet, ist mit Dockge schneller und übersichtlicher bedient. Wer ein Team mit verschiedenen Zugriffsrechten verwaltet, braucht Portainer.
Muss ich SSH dauerhaft aktiviert lassen?
Nein. SSH wird nur für die Erstinstallation und gelegentliche Wartungsaufgaben benötigt. Nach dem ersten Start von Dockge kann die gesamte Stack-Verwaltung über die Web-UI erfolgen. Du kannst SSH nach der Installation in DSM wieder deaktivieren, wenn du das Sicherheitsrisiko minimieren möchtest.
Warum sehe ich in Dockge manche Container gar nicht?
Dockge zeigt ausschließlich compose.yaml-Stacks – keine einzeln gestarteten Container (gestartet via docker run). Container, die ohne Compose-Datei gestartet wurden, sind in Dockge unsichtbar. Für die Übersicht über alle laufenden Container bleibt der Synology Container Manager die erste Wahl.
Wie importiere ich bestehende Stacks, die ich ohne Dockge angelegt habe?
Den Stack-Ordner (nur Kleinbuchstaben!) unter DOCKGE_STACKS_DIR anlegen, die vorhandene Compose-Datei als exakt compose.yaml hineinkopieren und dann in der Dockge-UI die Seite neu laden. Dockge adoptiert den laufenden Stack, ohne ihn neu zu starten.
Kann ich Dockge hinter dem Synology Reverse Proxy betreiben?
Ja. Lege in DSM unter Systemsteuerung → Anmeldeportal → Erweitert → Reverse Proxy einen neuen Eintrag an, der auf http://localhost:5571 zeigt. Aktiviere unter den erweiterten Einstellungen des Eintrags die Option „WebSocket-Unterstützung aktivieren" – ohne diese Einstellung bleibt die Dockge-UI leer oder verliert ständig die Verbindung.
Fazit
Dockge ist die konsequenteste Antwort auf eine häufige Frage im Self-Hosting: „Wie behalte ich den Überblick über meine Compose-Stacks, ohne gleich ein komplexes Tool wie Portainer einzuführen?" Das Tool ist leichtgewichtig, speichert alles als echte Dateien auf dem Dateisystem und kommt ohne Lock-in aus. Der einzige Fallstrick, der erfahrungsgemäß für Verwirrung sorgt, ist die Pfad-Symmetrie beim Volume-Mount – wer diese einmal verinnerlicht hat, ist auf der sicheren Seite. Auf einem Synology NAS mit DSM 7.2 koexistiert Dockge problemlos mit dem eingebauten Container Manager. Für Admins, die ihre Infrastruktur als Code verwalten wollen und dabei Wert auf Übersichtlichkeit und Portabilität legen, ist Dockge eine klare Empfehlung. Wer tiefer in das Thema einsteigen möchte, findet in der Anleitung Docker-Netzwerke und Volumes verstehen eine solide Grundlage. Wer Dockge hinter einem HTTPS-Reverse-Proxy betreiben möchte, findet alles Nötige in der Anleitung Nginx Proxy Manager auf dem Synology NAS.
Weiterführende Anleitungen und Quellen
- Docker Compose Grundlagen: Stacks verstehen und einsetzen
- Docker-Netzwerke und Volumes verstehen
- Nginx Proxy Manager auf dem Synology NAS mit Container Manager
- Watchtower: Docker-Container automatisch aktualisieren
Quellen: louislam/dockge auf GitHub (offizielles Repository, compose.yaml-Dokumentation, DOCKGE_STACKS_DIR-Erklärung); Marius Hosting: How to Install Dockge on Your Synology NAS (Synology-spezifischer Referenz-Workflow); Docker Hub: louislam/dockge (Image-Tags, Versionen, Architekturen); GitHub Discussion #395 (Community-Lösungen für Synology-spezifische Pfadprobleme).