Docmost auf dem Synology NAS installieren: moderne Confluence-Alternative
Docmost bringt Confluence-artige Spaces und Echtzeit-Kollaboration auf das eigene NAS. Die Anleitung zeigt den Compose-Stack mit PostgreSQL 18 und Redis, die sichere APP_SECRET-Erzeugung und die WebSocket-Konfiguration im Synology Reverse Proxy.
Geprüft am 26.10.2026 · für Docmost 0.97.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

Confluence ist teuer und an Atlassian gebunden, Notion speichert alles in der Cloud. Docmost übernimmt das Confluence-Konzept der Spaces, erlaubt Zusammenarbeit in Echtzeit und läuft vollständig auf dem eigenen NAS. IT-Abteilung, HR und Vertrieb arbeiten in separaten Spaces mit eigenen Berechtigungen, niemand sieht den Content der anderen, und alle Daten bleiben auf dem eigenen Volume. Der Stack besteht aus drei Diensten – Docmost selbst (TypeScript/Node.js), PostgreSQL als Primärdatenbank und Redis für WebSocket-Sessions –, die gemeinsam als Container Manager-Projekt gestartet werden.
Voraussetzungen
- Synology NAS mit Container-Manager-Unterstützung (x86-64 oder ARM64, z. B. DS224+, DS923+) und DSM 7.2 oder höher
- Container Manager aus dem Paket-Zentrum installiert
- Mindestens 1 GB freier Arbeitsspeicher (2 GB empfohlen – drei Container gleichzeitig aktiv)
- Ca. 500 MB freier Festplattenplatz für Images und initiale Daten
- SSH-Zugang zum NAS für die APP_SECRET-Generierung (Anleitung: SSH auf dem Synology NAS aktivieren und verbinden)
- Feste lokale IP oder DDNS-Adresse (z. B.
name.synology.me) für den Reverse Proxy - SSL-Zertifikat über DSM > Systemsteuerung > Sicherheit > Zertifikat (Let's Encrypt kostenlos verfügbar)
Schritt 1: Ordnerstruktur und APP_SECRET anlegen
Docmost benötigt drei bind-mount-Verzeichnisse auf dem NAS. Legen Sie sie per File Station unter /volume1/docker/docmost/ mit den Unterordnern data, db und redis an – oder per SSH mit einem Befehl:
mkdir -p /volume1/docker/docmost/{data,db,redis}
Erzeugen Sie danach das APP_SECRET im SSH-Terminal:
openssl rand -hex 32
Die Ausgabe ist eine 64-stellige Hexadezimalzeichenkette; Docmost verlangt mindestens 32 Zeichen. Speichern Sie den Wert sofort in einem Passwortmanager. Nach dem ersten Start darf der APP_SECRET niemals mehr geändert werden – alle laufenden Sessions und JWT-Tokens werden sonst sofort ungültig.
Verifizieren: Die drei Ordner existieren:
ls -la /volume1/docker/docmost/
# Erwartete Ausgabe: data/ db/ redis/
Der openssl-Befehl gibt 64 Zeichen aus; zur Kontrolle: openssl rand -hex 32 | wc -c (Ausgabe: 65, das letzte Zeichen ist der Zeilenumbruch).
Schritt 2: compose.yaml erstellen
Öffnen Sie den Container Manager, wechseln Sie zu „Projekt“ und legen Sie ein Projekt namens docmost mit dem Pfad /volume1/docker/docmost an (ausführliche Anleitung: Container Manager: Docker-Compose-Projekt anlegen, starten und aktualisieren). Fügen Sie folgenden Inhalt ein und ersetzen Sie die Platzhalter durch Ihre Werte:
services:
docmost:
image: docmost/docmost:latest
container_name: docmost
depends_on:
- db
- redis
environment:
APP_URL: 'https://docmost.meinname.synology.me'
APP_SECRET: 'ERSETZEN_MIT_OPENSSL_RAND_HEX_32_AUSGABE'
DATABASE_URL: 'postgresql://docmost:STARKES_DB_PASSWORT@db:5432/docmost'
REDIS_URL: 'redis://redis:6379'
TZ: 'Europe/Berlin'
DISABLE_TELEMETRY: 'true'
# MAIL_DRIVER: 'smtp'
# SMTP_HOST: 'smtp.example.com'
# SMTP_PORT: '587'
# SMTP_USERNAME: 'wiki@example.com'
# SMTP_PASSWORD: 'app-passwort'
# MAIL_FROM_ADDRESS: 'wiki@example.com'
# MAIL_FROM_NAME: 'Docmost Wiki'
ports:
- "3199:3000"
restart: unless-stopped
volumes:
- /volume1/docker/docmost/data:/app/data/storage
db:
image: postgres:18
container_name: docmost-db
environment:
POSTGRES_DB: docmost
POSTGRES_USER: docmost
POSTGRES_PASSWORD: STARKES_DB_PASSWORT
TZ: 'Europe/Berlin'
restart: unless-stopped
volumes:
- /volume1/docker/docmost/db:/var/lib/postgresql
redis:
image: redis:8
container_name: docmost-redis
command: ["redis-server", "--appendonly", "yes", "--maxmemory-policy", "noeviction"]
restart: unless-stopped
volumes:
- /volume1/docker/docmost/redis:/data
Drei Punkte sind beim Anpassen kritisch: Ersetzen Sie STARKES_DB_PASSWORT an beiden Stellen (in DATABASE_URL und in POSTGRES_PASSWORD) durch dasselbe starke Passwort – stimmen sie nicht überein, startet Docmost mit einem Datenbankfehler. Tragen Sie Ihre Domain in APP_URL ein; sie muss mit dem später eingerichteten Reverse Proxy übereinstimmen und HTTPS verwenden. Port 3199 ist gewählt, weil Port 3000 oft schon von anderen Containern belegt ist. Das PostgreSQL-18-Image erwartet den Mount auf /var/lib/postgresql (wie im offiziellen Compose); ein Mount auf /var/lib/postgresql/data bricht beim ersten Start mit Fehler ab.
Die folgende Tabelle fasst alle Eckdaten des Stacks zusammen:
| Parameter | Wert | Hinweis |
|---|---|---|
| Image (App) | docmost/docmost:latest | Stabil: v0.97.0 (25.10.2026); alternativ Tag pinnen, z. B. 0.97 |
| Image (DB) | postgres:18 | Offizielles Compose; nicht postgres:17 |
| Image (Cache) | redis:8 | Offizielles Compose; nicht redis:7.2-alpine |
| Host-Port | 3199 | Extern; intern läuft die App auf Port 3000 |
| Volume (App) | /volume1/docker/docmost/data | Datei-Uploads, Anhänge |
| Volume (DB) | /volume1/docker/docmost/db | → /var/lib/postgresql (ab PostgreSQL 18 ohne /data) |
| Volume (Redis) | /volume1/docker/docmost/redis | AOF-Persistenz |
| APP_SECRET | mind. 32 Zeichen | openssl rand -hex 32; nicht ändern |
| Architekturen | amd64, arm64 | Alle aktuellen Synology-NAS kompatibel |
Verifizieren: Der Container Manager speichert das Projekt ohne YAML-Fehler. Danach darf kein Platzhalter mehr in der Datei stehen:
grep -i "ERSETZEN\|STARKES" /volume1/docker/docmost/compose.yaml
# Ausgabe muss leer sein
Schritt 3: Stack starten und Setup-Wizard durchlaufen
Starten Sie das Projekt im Container Manager mit „Erstellen“. depends_on sorgt dafür, dass der App-Container nach Datenbank und Redis gestartet wird; Docmost wiederholt den Verbindungsaufbau, bis PostgreSQL bereit ist. Nach etwa 30–60 Sekunden sind alle drei Container grün.
Öffnen Sie im Browser http://NAS-IP:3199. Docmost leitet auf den Einrichtungsassistenten unter /setup weiter. Geben Sie dort an:
- Workspace-Name: z. B. „Schönfelder EDV Wiki“ oder Firmenname
- Admin-E-Mail und Passwort: Das erste Konto wird automatisch Admin
Nach dem Anlegen des Workspace öffnet sich die leere Wiki-Oberfläche. Die Datenbankmigrationen laufen beim Containerstart automatisch.
Verifizieren: Im Container Manager zeigen alle drei Container „Wird ausgeführt“. Im Log des docmost-Containers erscheint:
Listening on http://127.0.0.1:3000 / https://docmost.meinname.synology.me
Startet der DB-Container immer wieder neu, prüfen Sie dessen Log (häufig: falscher Mount-Pfad, siehe Schritt 2). Meldet der docmost-Container password authentication failed, stimmt das Passwort in DATABASE_URL nicht.
Schritt 4: Reverse Proxy mit WebSocket einrichten
Damit Echtzeit-Kollaboration funktioniert, braucht Docmost WebSocket-Unterstützung im Reverse Proxy. Öffnen Sie DSM > Systemsteuerung > Anmeldeportal > Erweitert > Reverse Proxy und legen Sie eine neue Regel an:
- Quelle: HTTPS, Ihre Domain (z. B.
docmost.meinname.synology.me), Port 443 - Ziel: HTTP,
localhost, Port 3199
Wählen Sie danach im Reiter „Benutzerdefinierte Kopfzeile“ dieser Regel „Erstellen > WebSocket“. DSM trägt zwei Header ein:
| Header-Name | Wert |
|---|---|
| Upgrade | $http_upgrade |
| Connection | $connection_upgrade |
Diese beiden Header sind nicht optional – ohne sie scheitert die WebSocket-Verbindung, und zwei Nutzer können zwar gleichzeitig eine Seite öffnen, sehen aber die Änderungen des anderen erst nach einem manuellen Reload.
Der Reverse Proxy greift über localhost zu; Port 3199 muss daher nicht im Router freigegeben werden. Nur für den direkten Zugriff aus dem LAN braucht die DSM-Firewall eine Regel (Anleitung: DSM-Firewall: Ports für Docker-Container freigeben).
Verifizieren: https://docmost.meinname.synology.me lädt ohne Zertifikatswarnung. In den Entwicklertools (F12 > Netzwerk > Filter: WS) zeigt nach einem Neuladen eine WebSocket-Verbindung den Status „101 Switching Protocols“.
Schritt 5: Ersten Space anlegen und Echtzeit-Kollaboration testen
Docmost organisiert alle Inhalte in Spaces – das ist der zentrale Unterschied zu BookStack (Regal/Buch-Metapher) und Outline (flache Blöcke). Ein Space entspricht einem Bereich: IT-Dokumentation, HR-Richtlinien oder Vertriebsunterlagen. Jeder Space hat eigene Mitglieder und Berechtigungen.
Legen Sie in der Seitenleiste einen neuen Space an und vergeben Sie einen Namen. Darin legen Sie Seiten an, verschachteln sie per Drag-and-Drop und erzeugen Unterseiten in beliebiger Tiefe. Der Editor unterstützt ohne Zusatzmodule:
- Diagramme mit Draw.io, Excalidraw und Mermaid (Draw.io lädt standardmäßig den Editor von diagrams.net; ein eigener Server ist über
DRAWIO_URLmöglich) - Mathe-Formeln mit KaTeX
- Tabellen mit erweiterter Formatierung
- Code-Blöcke mit Syntax-Highlighting
- Import von Markdown, HTML und Notion-Exporten
Für den KMU-Einsatz empfiehlt sich folgende initiale Space-Struktur: einen Space „IT“ für interne Betriebsdokumentation, einen Space „Onboarding“ für neue Mitarbeitende und einen Space „Projekte“ für laufende Vorhaben. Kollegen laden Sie unter Einstellungen > Mitglieder ein. Ohne konfiguriertes SMTP (in der Compose auskommentiert) geht keine E-Mail hinaus; den Einladungslink übermitteln Sie dann selbst. Die App funktioniert vollständig ohne SMTP; E-Mail-Versand ist optional.
Verifizieren: Öffnen Sie dieselbe Seite in zwei Browsern (oder Browser und privatem Fenster) mit zwei Konten. Text aus Browser 1 erscheint in Browser 2 innerhalb weniger Sekunden ohne Neuladen. Passiert das, ist der WebSocket-Kanal korrekt aktiv.
Schritt 6: Backup der Instanz einrichten
Eine vollständige Sicherung von Docmost besteht aus zwei Teilen, die sich gut automatisieren lassen.
Teil 1 – Datei-Uploads: Das Verzeichnis /volume1/docker/docmost/data enthält alle Bild- und Datei-Anhänge. Nehmen Sie diesen Ordner in Ihre bestehende Backup-Routine auf (Hyper Backup, Restic o. ä.).
Teil 2 – PostgreSQL-Dump: Der Datenbankinhalt (Seiten, Spaces, User, Berechtigungen) liegt ausschließlich in PostgreSQL. Einen Dump erstellen Sie so:
docker exec docmost-db pg_dump -U docmost docmost > /volume1/backup/docmost_$(date +%F).sql
Den Befehl hinterlegen Sie im DSM-Aufgabenplaner als tägliche Aufgabe (Benutzer root). Mehr zur Automatisierung: MySQL & PostgreSQL Backup automatisieren.
Redis-Daten (AOF-Dateien in /volume1/docker/docmost/redis) enthalten Warteschlangen und Echtzeitdaten, keine Wiki-Inhalte; sie sind kein Pflicht-Backup.
Verifizieren: Der Dump existiert und hat Inhalt:
ls -lh /volume1/backup/docmost_*.sql
# Erwartete Ausgabe: mindestens einige Kilobyte, z. B. 48K docmost_2026-09-30.sql
Eine leere oder sehr kleine Datei deutet auf einen Verbindungsfehler hin; prüfen Sie, ob der Container docmost-db läuft.
Troubleshooting / Typische Fehler
password authentication failedim Docmost-Log: Passwort inDATABASE_URLundPOSTGRES_PASSWORDstimmen nicht überein. Achtung:POSTGRES_PASSWORDwirkt nur bei der ersten Initialisierung; später passen SieDATABASE_URLan das ursprüngliche Passwort an. BeiECONNREFUSEDläuft der DB-Container nicht.- Echtzeit-Kollaboration funktioniert nicht (Änderungen nur nach Reload sichtbar): WebSocket-Header im Reverse Proxy fehlen. In der Reverse-Proxy-Regel unter „Benutzerdefinierte Kopfzeile“ „Erstellen > WebSocket“ wählen.
- PostgreSQL startet nicht, Log nennt
/var/lib/postgresql/data: Das Volume ist auf den alten Pfad gemountet. Ab PostgreSQL 18 gehört der Mount auf/var/lib/postgresql. Nur bei einer frischen Installation ohne Inhalte dürfen Sie den Ordnerdbleeren; mit bestehenden Daten zuerst sichern. - APP_SECRET nach erstem Start geändert: Alle Nutzer werden sofort ausgeloggt, JWT-Tokens sind ungültig. Den alten APP_SECRET wiederherstellen – er muss dauerhaft konstant bleiben. Daten bleiben erhalten.
- Setup-Wizard erscheint nicht, sondern Login-Seite: Der erste Setup wurde bereits abgeschlossen. Melden Sie sich mit dem damals angelegten Admin-Konto an.
- APP_URL auf HTTP statt HTTPS gesetzt: Einladungs-Links und OAuth-Callbacks zeigen auf HTTP, Browser blockiert Mixed Content. Wert in der Compose auf die HTTPS-URL ändern und Projekt neu erstellen.
- Reverse Proxy meldet 502: Container läuft nicht oder Zielport stimmt nicht. Ziel muss
localhost:3199sein, passend zum Host-Port in der Compose.
Häufige Fragen
Wie generiere ich APP_SECRET ohne SSH?
Der einfachste Weg ist der SSH-Befehl openssl rand -hex 32 direkt auf dem NAS. Alternativ funktioniert derselbe Befehl auf jedem Linux- oder macOS-System sowie in WSL unter Windows. Verwenden Sie keine Online-Generatoren für diesen Schlüssel – er schützt alle Sessions und JWT-Tokens der Instanz.
Was kostet die Enterprise-Edition und was bietet sie zusätzlich?
Die Community-Edition ist kostenlos (AGPL-3.0) und bietet Spaces, Echtzeit-Kollaboration und Volltextsuche. Die kostenpflichtige Business-Edition ergänzt laut Preisseite unter anderem SSO (SAML 2.0, OIDC, LDAP), Berechtigungen auf Seitenebene, KI-Funktionen, einen Confluence-Importer sowie Kanban und Datenbanken. Aktuelle Preise nennt docmost.com.
Kann ich von Confluence oder Notion zu Docmost migrieren?
Notion-Exporte (HTML oder Markdown) können direkt über den Import-Dialog eingespielt werden. Confluence-Inhalte exportieren Sie in der Community-Edition zunächst als HTML oder Markdown; einen direkten Confluence-Importer enthält die Business-Edition. Das Standard-Importlimit liegt bei 200 MB, anpassbar über FILE_IMPORT_SIZE_LIMIT in der Compose.
Wie unterscheidet sich Docmost von BookStack und Outline?
BookStack strukturiert Inhalte hierarchisch als Regal > Buch > Kapitel > Seite – ideal für statische IT-Dokumentation, die einmal geschrieben und selten gemeinsam bearbeitet wird. Outline folgt dem Notion-Modell mit flacher Block-Struktur, ideal für schnelle Team-Notizen. Docmost passt am besten, wenn mehrere Personen gleichzeitig an Dokumenten arbeiten und Confluence-artige Spaces mit klarer Abteilungstrennung gefragt sind.
Wie update ich Docmost auf eine neue Version?
Erstellen Sie vorher einen PostgreSQL-Dump. Stoppen Sie dann im Container Manager das Projekt, laden Sie unter „Image“ die neue Version von docmost/docmost herunter und erstellen Sie das Projekt über „Aktion > Erstellen“ neu. Datenbankmigrationen laufen automatisch beim Start.
Version 0.97.0 bringt laut Release Notes Link-Vorschauen für GitHub, GitLab, Jira, Linear, Azure DevOps und Figma, einen Präsentationsmodus für Seiten, einen Tabs-Block, Direktlinks auf Kommentare, schnellere Suche und Sicherheitskorrekturen für aktuelle Node.js-Lücken; das Update wird empfohlen. Neue Pflichtvariablen gibt es nicht. Im Test des Updates von 0.96.0 auf 0.97.0 am 26.10.2026 mit dieser Compose-Datei spielte Docmost beim Start eine neue Migration ein (integrations), der Health-Endpunkt antwortete nach wenigen Sekunden, die vorher angelegte Seite war vorhanden, die Anmeldung funktionierte, und ein falsches Passwort wurde mit 401 abgelehnt.
Funktioniert Docmost auch auf ARM-basierten Synology-NAS?
Ja. Das Image docmost/docmost:latest unterstützt sowohl linux/amd64 (x86-64) als auch linux/arm64 – es funktioniert damit auf allen aktuellen Synology-Modellen unabhängig von der CPU-Architektur.
Fazit
Docmost füllt eine echte Lücke im Self-Hosting-Bereich: Confluence-Konzepte (Spaces, verschachtelte Seiten, Echtzeit-Kollaboration) kombiniert mit modernem Stack und aktivem Open-Source-Projekt. Mit über 21.000 GitHub-Stars und regelmäßigen Releases ist das Projekt aktiv gepflegt; die Versionsnummer liegt allerdings noch unter 1.0. Für KMU, die Abteilungs-Wikis mit echter Datensouveränität betreiben wollen, ist es eine starke Option, vorausgesetzt, mehrere Nutzer arbeiten tatsächlich gleichzeitig an Dokumenten. Für eher statische Dokumentation passt BookStack, für ein Notion-ähnliches Wiki Outline.
Weiterführende Anleitungen und Quellen
- BookStack auf dem Synology NAS installieren: das Firmen-Wiki für IT-Dokumentation
- Outline auf dem Synology NAS installieren: modernes Team-Wiki als Notion-Alternative
- Portainer auf Synology NAS installieren: Schritt-für-Schritt-Anleitung für DSM 7.2
- MySQL & PostgreSQL Backup automatisieren mit cron: mysqldump, pg_dump, Rotation und rclone
Offizielle Quellen: Docmost-Dokumentation (Self-Hosting) · Docmost auf GitHub (docker-compose.yml) · Docmost auf Docker Hub · Environment Variables – offizielle Doku


