Docmost selbst hosten: Deine eigene Notion-Alternative für Familie und Projekte | MappleBox

Docmost selbst hosten: Deine eigene Notion-Alternative für Familie und Projekte

Rezepte, Reisepläne, die Anleitung für den Router der Eltern, Notizen zum Homelab: Solche Sachen landen bei vielen in Notion. Das funktioniert, liegt aber auf fremden Servern und kostet ab einer gewissen Teamgröße Geld. Docmost ist eine Open-Source-Alternative, die du selbst betreibst. Es fühlt sich an wie eine Mischung aus Notion und Confluence: Seiten in Bereichen, gemeinsames Bearbeiten in Echtzeit und Diagramme direkt im Text. In diesem Guide zeige ich dir, wie du Docmost einrichtest, die ersten Leute einlädst und ein Backup aufsetzt.

Kurz erklärt

  • Docmost ist ein Wiki und Dokumentations-Tool im Browser. Du schreibst Seiten, ordnest sie in Bereichen und bearbeitest sie mit anderen gleichzeitig.
  • Für Familien, WGs, Vereine oder kleine Teams, die ihr Wissen an einem Ort sammeln wollen.
  • Die Community Edition ist kostenlos und steht unter der Open-Source-Lizenz AGPL-3.0. Einige Profi-Features gibt es nur in den bezahlten Editionen Business und Enterprise.
  • Du brauchst einen kleinen Server mit Proxmox oder Docker. Docmost nutzt eine PostgreSQL-Datenbank und Redis als Zwischenspeicher.

Was Docmost kann

Laut offizieller Doku bringt die kostenlose Version diese Features mit:

  • Bereiche (Spaces): Getrennte Bereiche, zum Beispiel „Familie“, „Urlaub“ und „Homelab“. Jeder Bereich hat eigene Berechtigungen.
  • Echtzeit-Bearbeitung: Mehrere Leute schreiben gleichzeitig an einer Seite, wie bei Google Docs.
  • Diagramme: Draw.io, Excalidraw und Mermaid sind eingebaut. Du zeichnest also einen Netzwerkplan oder ein Flussdiagramm direkt in der Seite.
  • Seitenverlauf, Kommentare, Volltextsuche, Dateianhänge und Gruppen für die Rechtevergabe.
  • Import und Export: Import aus Notion und aus ZIP-Archiven, Export als Markdown oder HTML.

Bei mir läuft Docmost in einem LXC auf Proxmox am französischen Standort meines Homelabs. Dort sammle ich Notizen und Anleitungen, die ich sonst in Notion gepflegt hätte. Wie die Standorte zusammenhängen, steht in Mein Homelab an zwei Standorten.

Das brauchst du

  • Einen Proxmox-Host oder einen Linux-Rechner mit Docker und Docker Compose.
  • Für einen LXC mit nativer Installation: 3 Kerne, 4 GB RAM und mindestens 8 GB Disk, besser 10 GB. Das sind die Standardwerte des Helper-Scripts. Meine ältere Docmost-Installation braucht im laufenden Betrieb unter 400 MB RAM, neuere Versionen können mehr brauchen. Die Ressourcen sind vor allem für Installation und Updates gedacht, weil dabei Docmost neu gebaut wird.
  • Eine feste IP für den Container.
  • Optional ein Mail-Konto für den Versand von Einladungen. Es geht auch ohne, dazu unten mehr.

Schritt 1, Variante A: Installation auf Proxmox per Helper-Script

So habe ich Docmost installiert. Die Proxmox VE Helper-Scripts sind Community-Scripts, die einen fertigen LXC anlegen. Ein LXC ist ein schlanker Linux-Container, der weniger Ressourcen braucht als eine virtuelle Maschine. Führe auf der Shell deines Proxmox-Hosts aus:

bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/docmost.sh)"

Schau dir das Script vorher kurz auf GitHub an, du führst es als root aus. Es schlägt zum Zeitpunkt dieses Guides 3 Kerne, 4 GB RAM und 8 GB Disk auf Debian 13 vor. Das Script installiert PostgreSQL, Redis und Node.js direkt im Container, baut Docmost unter /opt/docmost und richtet einen systemd-Service namens docmost ein. Die Konfiguration inklusive APP_SECRET und Datenbank-Passwort schreibt es selbst in /opt/docmost/.env. Am Ende siehst du die Adresse http://192.168.1.x:3000.

Mein Container mit einer älteren Docmost-Version hat nur 7 GB Disk, und die sind zu über 90 Prozent belegt, obwohl meine eigenen Daten keine 1 MB groß sind. Den Platz fressen die Node-Module und der Build. Neuere Versionen werden eher größer als kleiner. Gib dem LXC deshalb lieber gleich 10 GB, sonst scheitert irgendwann ein Update.

Schritt 1, Variante B: Installation mit Docker Compose

Das ist der offizielle Weg laut Docmost-Doku. Lege einen Ordner an und wechsle hinein:

mkdir ~/docmost && cd ~/docmost

Erzeuge dann ein zufälliges Secret:

openssl rand -hex 32

Das APP_SECRET nutzt Docmost unter anderem, um Login-Sitzungen zu signieren. Es muss mindestens 32 Zeichen lang sein, mit dem Platzhalterwert startet Docmost nicht. Lege dann die docker-compose.yml an:

services:
  docmost:
    image: docmost/docmost:latest
    depends_on:
      - db
      - redis
    environment:
      APP_URL: "http://192.168.1.x:3000"
      APP_SECRET: "<dein-secret>"
      DATABASE_URL: "postgresql://docmost:<dein-passwort>@db:5432/docmost"
      REDIS_URL: "redis://redis:6379"
    ports:
      - "3000:3000"
    restart: unless-stopped
    volumes:
      - docmost:/app/data/storage
  db:
    image: postgres:18
    environment:
      POSTGRES_DB: docmost
      POSTGRES_USER: docmost
      POSTGRES_PASSWORD: <dein-passwort>
    restart: unless-stopped
    volumes:
      - db_data:/var/lib/postgresql
  redis:
    image: redis:8
    command: ["redis-server", "--appendonly", "yes", "--maxmemory-policy", "noeviction"]
    restart: unless-stopped
    volumes:
      - redis_data:/data
volumes:
  docmost:
  db_data:
  redis_data:

Ersetze <dein-secret> durch den Wert aus openssl und <dein-passwort> an beiden Stellen durch dasselbe starke Datenbank-Passwort. Ohne Sonderzeichen wie @ oder / ersparst du dir Ärger in der DATABASE_URL. APP_URL ist die Adresse, unter der du Docmost später aufrufst. Nutzt du einen Reverse Proxy, trägst du hier zum Beispiel https://wiki.example.de ein. Starte alles mit:

docker compose up -d

Schritt 2: Den ersten Workspace anlegen

Öffne http://192.168.1.x:3000. Beim ersten Aufruf zeigt Docmost eine Setup-Seite. Dort gibst du einen Namen für den Workspace, deinen Namen, deine Mail-Adresse und ein Passwort ein. Damit bist du Owner, also Besitzer des Workspace mit allen Rechten. Es gibt keinen Standard-Login, den du ändern musst.

Die Oberfläche gibt es auch auf Deutsch. Die Sprache stellst du in deinen Kontoeinstellungen unter „Preferences“ → „Language“ um. Danach legst du über „Bereich erstellen“ deine ersten Bereiche an. Für eine Familie reichen anfangs zwei: einer für alle und einer nur für dich.

Kommst du von Notion, exportierst du dort deinen Workspace oder einzelne Seiten als ZIP. In Docmost öffnest du den Zielbereich, klickst in der Seitenleiste auf die drei Punkte neben „Pages“ und wählst „Import pages“ (auf Deutsch „Seiten importieren“) und dann „Notion“. Laut Doku bleibt die Seitenstruktur erhalten. Prüf nach dem Import stichprobenartig, ob Bilder und Tabellen sauber angekommen sind.

Schritt 3: Familie und Freunde einladen

Unter Einstellungen → Mitglieder findest du „Mitglieder einladen“. Du gibst eine Mail-Adresse ein und wählst eine Rolle. Die eingeladene Person setzt über den Einladungslink selbst ihr Passwort.

Damit die Einladung per Mail ankommt, braucht Docmost einen Mailserver. Die Variablen dafür heißen MAIL_DRIVER=smtp, SMTP_HOST, SMTP_PORT, SMTP_USERNAME, SMTP_PASSWORD, SMTP_SECURE, MAIL_FROM_ADDRESS und MAIL_FROM_NAME. Du trägst sie bei Docker im environment-Block ein, beim Helper-Script in /opt/docmost/.env, und startest Docmost danach neu.

Für ein paar Familienmitglieder geht es auch ohne Mailserver. Lade die Person trotzdem ein. Im Tab „Ausstehend“ klickst du bei der Einladung auf die drei Punkte und wählst „Link kopieren“. Den Link schickst du per Messenger. Ohne Mailversand funktioniert allerdings auch „Passwort vergessen“ nicht. Merk dir das, bevor du Oma das Konto gibst.

Sollen Leute von außerhalb deines Heimnetzes zugreifen, gibt es zwei Wege: ein VPN wie Tailscale oder ein Reverse Proxy mit HTTPS. Beim Reverse Proxy musst du WebSockets durchlassen, sonst funktioniert die Echtzeit-Bearbeitung nicht. Caddy macht das automatisch. Wie ich meinen Caddy zusätzlich mit CrowdSec schütze, steht in CrowdSec mit Caddy und nftables.

Schritt 4: Backups einrichten

Docmost speichert Seiten in PostgreSQL und Dateianhänge im Dateisystem. Du musst beides sichern.

Mit Docker sicherst du die Datenbank als SQL-Datei:

docker compose exec -T db pg_dump -U docmost docmost > docmost-$(date +%F).sql

Die Anhänge liegen im Docker-Volume docmost. Wo das auf der Platte liegt, zeigt dir docker volume ls zusammen mit docker volume inspect. Der Volume-Name bekommt den Ordnernamen als Präfix, also zum Beispiel docmost_docmost.

Beim Helper-Script liegen die Anhänge unter /opt/docmost/data. Am einfachsten sicherst du hier den ganzen LXC mit dem Proxmox-Backup (vzdump), zum Beispiel jede Nacht auf ein NAS. Zusätzlich kannst du im Container einen Datenbank-Dump ziehen:

su - postgres -c "pg_dump docmost_db" > /root/docmost-$(date +%F).sql

Das Helper-Script nennt die Datenbank bei mir docmost_db. Mit su - postgres -c "psql -l" siehst du, wie sie bei dir heißt. Als dritte Absicherung exportierst du wichtige Bereiche ab und zu als Markdown, über die drei Punkte neben „Pages“ und „Export space“ (auf Deutsch „Bereich exportieren“). Diese Dateien kannst du auch ohne Docmost öffnen.

So prüfst du, ob es läuft

  • Unter http://192.168.1.x:3000/api/health antwortet Docmost mit einem Status.
  • Helper-Script: systemctl status docmost postgresql redis-server zeigt alle drei als aktiv.
  • Docker: docker compose ps zeigt drei laufende Container.
  • Öffne dieselbe Seite in zwei Browsern und tippe in einem. Erscheint der Text sofort im anderen, funktioniert die Echtzeit-Bearbeitung.

Den Health-Endpunkt kannst du in Uptime Kuma als Monitor eintragen. Wie ich das aufgebaut habe, steht in Uptime Kuma und ntfy im Homelab.

Typische Probleme

Docmost startet nicht. Meist ist das APP_SECRET zu kurz oder noch der Platzhalter, oder das Passwort in DATABASE_URL passt nicht zu POSTGRES_PASSWORD. Schau mit docker compose logs docmost oder journalctl -u docmost in die Logs.

Seiten laden, aber Änderungen anderer erscheinen nicht. Der Reverse Proxy lässt keine WebSockets durch. Prüfe die Proxy-Konfiguration.

Links in Einladungen zeigen auf localhost. APP_URL stimmt nicht mit der Adresse überein, über die du Docmost aufrufst. Korrigiere sie und starte neu.

Upload von großen Dateien scheitert. Das Standard-Limit liegt bei 50 MB. Mit FILE_UPLOAD_SIZE_LIMIT erhöhst du es, zum Beispiel auf 100mb.

Update im LXC bricht ab. Ein Update startest du, indem du in der Konsole des LXC den Befehl update eingibst. Bei Docker holst du die neue Version mit docker compose pull und docker compose up -d. Bricht das Update im LXC ab, prüf mit df -h / den freien Speicher. Beim Update baut das Script Docmost neu, das braucht Platz. Das Script sichert dabei die .env und behält den Ordner data. Ein Proxmox-Snapshot vor dem Update schadet trotzdem nicht. Docmost entwickelt sich schnell, meine eigene Installation ist inzwischen viele Versionen hinter der aktuellen. Lies vor großen Sprüngen die Release Notes auf GitHub.

Ehrliche Grenzen im Vergleich zu Notion

  • Docmost ist in erster Linie ein Wiki. Wenn du in Notion viel mit Datenbanken, Ansichten, Filtern und Formeln arbeitest, findest du dafür in Docmost keinen gleichwertigen Ersatz.
  • Eine offizielle Mobile-App habe ich nicht gefunden. Auf dem Handy nutzt du Docmost im Browser, das ist bequem genug zum Lesen, für längere Texte aber zäher als die Notion-App.
  • Laut Preisseite von Docmost sind unter anderem Zwei-Faktor-Login (MFA), SSO, Rechte auf einzelnen Seiten, KI-Funktionen, der Confluence-Import und die Volltextsuche in PDF- und Word-Anhängen den bezahlten Editionen Business und Enterprise vorbehalten. Für eine Familie fehlt davon am ehesten MFA. Umso wichtiger ist, dass du Docmost nicht offen ins Internet stellst.
  • Offline-Zugriff gibt es nicht. Ist dein Server aus, kommst du nicht an deine Notizen. Deshalb lohnt sich der gelegentliche Markdown-Export.

Fazit

Docmost ist eine gute Wahl, wenn du ein gemeinsames Wiki für Familie, Freunde oder ein kleines Projekt willst und die Daten bei dir bleiben sollen. Die Installation per Helper-Script oder Docker Compose ist in einer halben Stunde erledigt. Plane genug Speicherplatz ein, richte das Backup gleich am ersten Tag ein und greif von außen nur über VPN oder einen abgesicherten Reverse Proxy zu. Wer stark mit Notion-Datenbanken arbeitet, bleibt besser bei Notion. Für Seiten, Anleitungen und Diagramme reicht Docmost locker.

Guide teilen

Hat dir der Guide geholfen? Dann spendier mir gern einen Kaffee auf Ko-fi. Damit bleibt MappleBox werbefrei.

Ähnliche Beiträge

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert