Dockge auf dem Synology NAS installieren: Docker-Compose-Stacks einfach verwalten
Dockge bringt eine schlanke Weboberfläche für Docker-Compose-Stacks auf das Synology NAS. Die Anleitung zeigt Ordnerstruktur, die nötige Pfad-Symmetrie in der compose.yaml, den Import bestehender Stacks und nach jedem Schritt eine Prüfung.
Geprüft am 30.09.2026 · für dockge 1.5.0
WerbelinksMit * markierte Links sind Werbelinks: Bei einem Kauf erhalten wir eine Provision, der Preis bleibt gleich. Als Amazon-Partner verdiene ich an qualifizierten Verkäufen. Mehr dazu

Mehrere Docker-Compose-Stacks auf einem Synology NAS, verteilt über SSH, Container Manager und Portainer, werden schnell unübersichtlich. Dockge von Uptime-Kuma-Entwickler Louis Lam bündelt sie in einer schlanken Weboberfläche: Es läuft selbst als Container, steuert über den Docker-Socket den Docker-Dienst des NAS und startet, stoppt, bearbeitet und deployt Stacks. Die Compose-Dateien bleiben normale Dateien im Dateisystem.
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 und rund 1 GB Speicher für das Image (etwa 250 MB komprimiert). Das Image gibt es für x86 (amd64) und ARM (arm64, armv7), es läuft also auch auf Synology-Modellen mit ARM-CPU, sofern diese den Container Manager unterstützen.
- 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, denn DSM belegt Port 5001 für HTTPS
Per SSH gehen Ordner und Test des Docker-Zugriffs am schnellsten; ohne SSH nutzen Sie den Weg über den Container Manager weiter unten. Sicherheitshinweis: Wer Zugriff auf /var/run/docker.sock hat, hat faktisch Root-Rechte auf dem NAS. Stellen Sie Dockge nicht ungeschützt ins Internet und vergeben Sie ein starkes Passwort.
Schritt 1: SSH-Zugang aktivieren und verbinden
Öffnen Sie in DSM Systemsteuerung → Terminal & SNMP, setzen Sie den Haken bei „SSH-Dienst aktivieren“ und bestätigen Sie mit „Übernehmen“. Standardport ist 22.
Verbinden Sie sich von Ihrem Rechner mit dem NAS, unter Windows etwa mit Windows Terminal, unter macOS und Linux mit dem eingebauten Terminal:
ssh admin@192.168.1.100 -p 22Ersetzen Sie 192.168.1.100 durch die IP-Adresse Ihres NAS. Für Docker-Befehle wechseln Sie nach dem Login zu root:
sudo -iVerifizieren: Nach sudo -i zeigt die Shell-Eingabeaufforderung root@<NAS-Hostname>:~#. Testen Sie außerdem, ob Docker erreichbar ist:
docker --versionErwartete Ausgabe (Versionsnummer kann abweichen):
Docker version 24.0.x, build xxxxxxxSchlägt der Befehl fehl, ist der Container Manager nicht installiert oder nicht gestartet.
Schritt 2: Ordnerstruktur anlegen
Eine 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/stacksIn data liegen Dockges Datenbank und Einstellungen, in stacks legt Dockge je Stack einen Unterordner mit der Compose-Datei an.
Verifizieren: Prüfen Sie, dass beide Ordner angelegt wurden:
ls -la /volume1/docker/dockge/Erwartete Ausgabe:
drwxr-xr-x data
drwxr-xr-x stacksSchritt 3: compose.yaml erstellen
Erstellen Sie im Dockge-Verzeichnis die compose.yaml. Kritisch ist der Volume-Mount für das Stack-Verzeichnis: Der linke Pfad (Host) muss exakt dem rechten Pfad (Container) entsprechen, als vollständiger Pfad. Dockge ruft docker compose im Container auf, der Docker-Dienst des NAS löst relative Bind-Mounts der Stacks aber auf dem Host auf; nur bei identischen Pfaden landen die Daten richtig.
cd /volume1/docker/dockge
vi compose.yamlFügen Sie 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/stackslouislam/dockge:1 ist ein Moving-Tag auf die neueste 1.x-Version (Stand September 2026 weiterhin 1.5.0 vom 30.03.2025). Container-Port 5001 wird auf Host-Port 5571 gemappt, um Kollisionen mit Synology-Diensten zu vermeiden.
Verifizieren: Lassen Sie sich die Datei anzeigen, um Tippfehler auszuschließen:
cat /volume1/docker/dockge/compose.yamlPrüfen Sie 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
Starten Sie 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 herunter, abschließend erscheint Container dockge-dockge-1 Started.
Verifizieren: Prüfen Sie, 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-1Nach etwa 30 Sekunden steht dort Up … (healthy), im Log (docker logs dockge-dockge-1) erscheinen No user, need setup und Listening on 5001. Bei Restarting liegt ein Konfigurationsfehler vor, die Ursache steht im Log.
Schritt 5: Firewall-Regel anlegen und Dockge im Browser öffnen
Ist die Synology-Firewall aktiv, legen Sie unter Systemsteuerung → Sicherheit → Firewall → Regeln bearbeiten eine Regel an: Protokoll TCP, Port 5571, Quelle nach Bedarf (LAN oder einzelne IP), Aktion „Zulassen“.
Rufen Sie anschließend im Browser die Dockge-Oberfläche auf:
http://<NAS-IP>:5571Beim ersten Aufruf zeigt Dockge einen Setup-Dialog. Legen Sie dort den Admin-Benutzernamen und ein sicheres Passwort fest und klicken Sie auf „Erstellen“.
Verifizieren: Nach dem Login erscheint das Dockge-Dashboard. Die Stack-Liste links ist noch leer oder zeigt bereits laufende Compose-Projekte, die nicht im Stack-Verzeichnis liegen, als nicht verwaltet (ausgegraut). Das Stack-Verzeichnis zeigt Dockge in den Einstellungen nicht an. Prüfen Sie es per SSH mit docker inspect dockge-dockge-1 --format '{{range .Mounts}}{{.Source}} -> {{.Destination}}{{println}}{{end}}': Die Zeile für stacks muss links und rechts /volume1/docker/dockge/stacks zeigen.
Schritt 6: Ersten neuen Stack in Dockge anlegen
Klicken Sie auf „+ Compose“ und vergeben Sie einen Stack-Namen aus nur Kleinbuchstaben, Ziffern, Bindestrich und Unterstrich; andere lehnt Dockge mit „Stack name can only contain [a-z][0-9] _ - only“ ab. Tragen Sie den Inhalt der compose.yaml ein und klicken Sie auf „Deployen“.
Dockge legt /volume1/docker/dockge/stacks/<stackname>/ an, speichert dort die compose.yaml und startet den Stack via Docker Compose. Da alles als echte Datei liegt, gibt es keinen Lock-in und keine proprietäre Datenbank.
Verifizieren: Nach dem Deploy erscheint der Stack in der Liste als aktiv (grüner Punkt). Prüfen Sie auf der Kommandozeile:
ls /volume1/docker/dockge/stacks/Der Unterordner mit dem Stack-Namen ist vorhanden, cat /volume1/docker/dockge/stacks/<stackname>/compose.yaml zeigt die gespeicherte Datei.
Schritt 7: Bestehende Stacks importieren
Bisher über Container Manager, Portainer oder SSH angelegte Stacks erscheinen ausgegraut und sind erst verwaltbar, wenn ihre Compose-Datei im Stack-Verzeichnis liegt. Der Ordnername muss dem Compose-Projektnamen entsprechen, sonst gilt er als neuer Stack.
# 1. Unterordner mit dem Projektnamen anlegen (nur Kleinbuchstaben)
mkdir -p /volume1/docker/dockge/stacks/meinstack
# 2. Vorhandene Compose-Datei hineinkopieren
cp /volume1/docker/meinstack/docker-compose.yml /volume1/docker/dockge/stacks/meinstack/Dockge erkennt compose.yaml, compose.yml, docker-compose.yaml und docker-compose.yml ohne Umbenennen. Nutzt die Datei relative Pfade (./data), verschieben Sie die Daten mit oder tragen vorher absolute Pfade ein.
Verifizieren: Laden Sie die Dockge-Oberfläche neu (F5). Der Stack erscheint ohne Ausgrauung mit dem Status des laufenden Containers. Dockge übernimmt laufende Container, ohne sie neu zu starten.
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 ersetzt den Container durch einen neuen. Daten unter /volume1/docker/dockge/data und alle Stack-Dateien bleiben erhalten.
Verifizieren: Prüfen Sie nach dem Update das Erstellungsdatum des laufenden Containers:
docker inspect dockge-dockge-1 --format '{{.Created}}'Nach einem neuen Image entspricht das Datum dem aktuellen Tag. Gab es kein neues Image, bleibt der Container unverändert, docker compose pull meldet dann kein Update.
Alternative: Dockge über den Container Manager deployen
Ohne SSH: Legen Sie in der File Station data und stacks unter /volume1/docker/dockge an und speichern Sie dort die compose.yaml von oben. Unter Container Manager → Projekt → Erstellen vergeben Sie den Projektnamen „dockge“, wählen den Pfad /volume1/docker/dockge, übernehmen die vorhandene Compose-Datei, klicken auf „Weiter“ und bestätigen. Das Ergebnis ist identisch.
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üfen Sie, ob
DOCKGE_STACKS_DIRexakt dem rechten Pfad desstacks-Volume-Mounts entspricht. Kontrollieren Sie mitdocker inspect dockge-dockge-1die tatsächlichen Environment-Variablen und Mounts. - „permission denied on /var/run/docker.sock“: Der Container erreicht den Docker-Dienst nicht. Prüfen Sie, dass
/var/run/docker.sock:/var/run/docker.sockuntervolumessteht und der Stack als root gestartet wurde (sudo -i). - Stack-Ordner wird nicht angezeigt oder lässt sich nicht verwalten: Stack-Namen dürfen nur Kleinbuchstaben, Ziffern,
-und_enthalten. Benennen Sie Ordner wieJellyfininjellyfinum. Außerdem muss im Ordner eine Dateicompose.yaml,compose.yml,docker-compose.yamloderdocker-compose.ymlliegen. - Port 5001 bereits belegt: DSM oder ein anderer Container nutzen möglicherweise Port 5001. Ändern Sie 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 fügen Sie dazu unter „Benutzerdefinierte Kopfzeile“ die Vorlage „WebSocket“ hinzu. - „Restarting“ statt „Up“ in docker ps: Lesen Sie 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üfen Sie 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 nutzen denselben Docker-Dienst. Container-Manager-Projekte erscheinen in Dockge ausgegraut, Dockge-Stacks im Container Manager als Container. Legen Sie neue Stacks nur an einer Stelle an, damit keine Compose-Datei doppelt gepflegt wird.
Was ist der Unterschied zwischen Dockge und Portainer?
Dockge beschränkt sich auf Compose-Stacks und bleibt schlank. Portainer verwaltet zusätzlich Einzelcontainer, Swarm, Kubernetes sowie Benutzer und Rechte. Für reine Compose-Umgebungen genügt Dockge, für Teams mit unterschiedlichen Zugriffsrechten brauchen Sie Portainer.
Muss ich SSH dauerhaft aktiviert lassen?
Nein, nur für Installation und gelegentliche Wartung. Deaktivieren Sie SSH danach wieder, wenn Sie es nicht regelmäßig brauchen.
Warum sehe ich in Dockge manche Container gar nicht?
Dockge zeigt nur Compose-Stacks. Mit docker run gestartete Einzelcontainer sind unsichtbar. Für die Übersicht über alle Container nutzen Sie den Container Manager.
Wie importiere ich bestehende Stacks, die ich ohne Dockge angelegt habe?
Wie in Schritt 7: Ordner mit dem Compose-Projektnamen unter DOCKGE_STACKS_DIR anlegen, Compose-Datei hineinkopieren, Oberfläche neu laden. Laufende Container bleiben dabei unberührt.
Kann ich Dockge hinter dem Synology Reverse Proxy betreiben?
Ja. Legen Sie unter Systemsteuerung → Anmeldeportal → Erweitert → Reverse Proxy einen Eintrag auf http://localhost:5571 an und fügen Sie unter „Benutzerdefinierte Kopfzeile“ über „Erstellen → WebSocket“ die WebSocket-Header hinzu, sonst bleibt die Oberfläche leer oder verliert die Verbindung.
Fazit
Dockge schafft Überblick über Compose-Stacks ohne ein umfangreiches Werkzeug wie Portainer, speichert alles als normale Dateien und lässt sich ohne Folgen für die Stacks entfernen. Wichtigster Fallstrick ist die Pfad-Symmetrie beim Volume-Mount. Grundlagen: Docker-Netzwerke und Volumes verstehen. Für HTTPS über einen Reverse Proxy: 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); Docker Hub: louislam/dockge (Image-Tags, Versionen, Architekturen); GitHub Discussion #395 (Community-Lösungen für Synology-spezifische Pfadprobleme).


