·

Docmost selbst hosten mit Docker Compose und Traefik: Komplette Anleitung

Erfahre, wie du Docmost auf deinem eigenen Server mit Docker Compose und Traefik als Reverse Proxy selbst hostest. Eine Schritt-für-Schritt-Anleitung für DSGVO-konforme Dokumentation.
Docmost selbst hosten mit Docker Compose und Traefik: Komplette Anleitung

Docmost selbst hosten: Deine private Dokumentationsplattform

Cloud-basierte Dokumentationstools wie Notion oder Confluence speichern deine sensiblen Daten auf Drittanbieter-Servern, oft außerhalb der EU. Die Lösung? Docmost selbst hosten – eine Open-Source-Plattform, die dir volle Kontrolle gibt. In dieser Anleitung richten wir Docmost mit Docker Compose und Traefik ein.

Was ist Docmost?

Docmost ist eine moderne, Open-Source-Dokumentations- und Wiki-Plattform. Betrachte es als selbst gehostete Alternative zu Notion oder Confluence. Es bietet:

  • Echtzeit-Kollaboration: Mehrere Benutzer können Dokumente gleichzeitig bearbeiten
  • Verschachtelte Seiten: Organisiere deine Dokumentation in einer hierarchischen Struktur
  • Rich-Text-Editor: Ein leistungsstarker WYSIWYG-Editor mit Markdown-Unterstützung
  • Workspaces: Separate Bereiche für verschiedene Teams oder Projekte
  • Volltextsuche: Finde jedes Dokument sofort

Warum Docmost selbst hosten?

Datensouveränität: Deine Dokumentation enthält sensible Geschäftsinformationen. Selbst-Hosting stellt sicher, dass diese Daten niemals deine Infrastruktur verlassen.

DSGVO-Konformität: Durch das Hosting in Deutschland oder der EU bleibst du vollständig konform mit den Datenschutzvorschriften.

Kein Vendor Lock-in: Du besitzt deine Daten und kannst sie jederzeit migrieren oder sichern.

Kosteneinsparungen: Keine Preise pro Benutzer. Hoste unbegrenzt viele Benutzer auf deinem eigenen Server.

Technische Voraussetzungen

Bevor wir beginnen, stelle sicher, dass du Folgendes hast:

  • Einen Server oder VPS mit mindestens 2 GB RAM (4 GB empfohlen)
  • Docker und Docker Compose installiert (offizielle Installationsanleitung)
  • Einen Domainnamen, der auf deinen Server zeigt
  • Grundkenntnisse der Kommandozeile

Für dieses Tutorial verwenden wir einen Hetzner Cloud Server, aber jeder VPS-Anbieter funktioniert.

Die Architektur verstehen

Unser Setup besteht aus vier Hauptkomponenten:

  1. Docmost: Die Hauptanwendung
  2. PostgreSQL: Datenbank zur Speicherung aller Dokumentationsdaten
  3. Redis: Cache und Session-Speicher für bessere Performance
  4. Traefik: Reverse Proxy für SSL-Zertifikate und Routing

So arbeiten sie zusammen:

Internet → Traefik (SSL) → Docmost → PostgreSQL/Redis

Traefik bezieht automatisch Let's Encrypt SSL-Zertifikate, sodass deine Dokumentation immer über HTTPS bereitgestellt wird.

Schritt 1: Server vorbereiten

Verbinde dich zuerst per SSH mit deinem Server und erstelle ein Verzeichnis für Docmost:

mkdir -p ~/docmost
cd ~/docmost

Schritt 2: Docker-Netzwerk erstellen

Traefik benötigt ein gemeinsames Netzwerk, um mit Docmost zu kommunizieren:

docker network create web

Schritt 3: Traefik einrichten

Erstelle ein Verzeichnis für Traefik und seine Konfiguration:

mkdir -p ~/traefik
cd ~/traefik

Erstelle die Traefik-Konfigurationsdatei traefik.yml:

entryPoints:
  web:
    address: ':80'
    http:
      redirections:
        entryPoint:
          to: websecure
          scheme: https
  websecure:
    address: ':443'

certificatesResolvers:
  letsencrypt:
    acme:
      email: deine-email@example.com
      storage: /letsencrypt/acme.json
      httpChallenge:
        entryPoint: web

providers:
  docker:
    exposedByDefault: false
    network: web

Erstelle die Traefik docker-compose.yml:

services:
  traefik:
    image: traefik:v3.6
    container_name: traefik
    restart: always
    ports:
      - '80:80'
      - '443:443'
    volumes:
      - ./traefik.yml:/etc/traefik/traefik.yml:ro
      - ./letsencrypt:/letsencrypt
      - /var/run/docker.sock:/var/run/docker.sock:ro
    networks:
      - web

networks:
  web:
    external: true

Erstelle die Let's Encrypt Speicherdatei:

mkdir -p letsencrypt
touch letsencrypt/acme.json
chmod 600 letsencrypt/acme.json

Starte Traefik:

docker compose up -d

Schritt 4: Docmost einrichten

Navigiere zurück zum Docmost-Verzeichnis:

cd ~/docmost

Generiere einen sicheren Secret-Key für deine Anwendung:

openssl rand -hex 32

Erstelle die docker-compose.yml für Docmost:

services:
  docmost:
    image: docmost/docmost:latest
    depends_on:
      - db
      - redis
    environment:
      APP_URL: 'https://docs.deine-domain.de'
      APP_SECRET: 'ERSETZE_MIT_LANGEM_SECRET'
      DATABASE_URL: 'postgresql://docmost:STARKES_DB_PASSWORT@db:5432/docmost?schema=public'
      REDIS_URL: 'redis://redis:6379'
    restart: unless-stopped
    volumes:
      - docmost:/app/data/storage
    networks:
      - web
      - internal
    labels:
      - 'traefik.enable=true'
      - 'traefik.http.routers.docmost.rule=Host(`docs.deine-domain.de`)'
      - 'traefik.http.routers.docmost.entrypoints=websecure'
      - 'traefik.http.routers.docmost.tls.certresolver=letsencrypt'
      - 'traefik.http.services.docmost.loadbalancer.server.port=3000'

  db:
    image: postgres:16-alpine
    environment:
      POSTGRES_DB: docmost
      POSTGRES_USER: docmost
      POSTGRES_PASSWORD: STARKES_DB_PASSWORT
    restart: unless-stopped
    volumes:
      - db_data:/var/lib/postgresql/data
    networks:
      - internal

  redis:
    image: redis:7.2-alpine
    restart: unless-stopped
    volumes:
      - redis_data:/data
    networks:
      - internal

volumes:
  docmost:
  db_data:
  redis_data:

networks:
  web:
    external: true
  internal:

Ersetze ERSETZE_MIT_LANGEM_SECRET mit dem Secret-Key, den du mit openssl rand -hex 32 generiert hast, und STARKES_DB_PASSWORT mit einem sicheren Datenbankpasswort (du kannst eines auf die gleiche Weise generieren).

Schritt 5: DNS konfigurieren

Bevor du Docmost startest, stelle sicher, dass dein DNS konfiguriert ist:

  1. Melde dich bei deinem Domain-Registrar an
  2. Erstelle einen A-Record, der docs.deine-domain.de auf die IP-Adresse deines Servers zeigt
  3. Warte auf die DNS-Propagierung (normalerweise ein paar Minuten)

Schritt 6: Docmost starten

Starte alle Dienste:

docker compose up -d

Prüfe, ob alles läuft:

docker compose ps

Du solltest alle drei Container (docmost, db, redis) im Status "running" sehen.

Schritt 7: Ersteinrichtung

Öffne https://docs.deine-domain.de in deinem Browser. Du wirst vom Docmost-Einrichtungsassistenten begrüßt:

  1. Erstelle dein Admin-Konto
  2. Richte deinen ersten Workspace ein
  3. Beginne mit der Dokumentation!

Wartung

Docmost aktualisieren

Um auf die neueste Version zu aktualisieren:

cd ~/docmost
docker compose pull
docker compose up -d

Sicherheits-Best-Practices

  1. Verwende starke Passwörter: Generiere zufällige Passwörter für die Datenbank und APP_SECRET
  2. Aktiviere die Firewall: Öffne nur die Ports 80 und 443
  3. Regelmäßige Updates: Halte die Docker-Images aktuell

Der einfachere Weg: Deployment mit lowcloud

Während dir dieses Tutorial volle Kontrolle gibt, erfordert das manuelle Einrichten von Docmost:

  • Server-Provisionierung und SSH-Konfiguration
  • Docker-Installation und -Verwaltung
  • Traefik-Konfiguration für SSL

Was wäre, wenn all das automatisiert werden könnte?

Mit lowcloud kannst du Docmost – oder jede Anwendung mit einer Docker Compose Datei – mit nur wenigen Klicks deployen:

  1. Verbinde dein Hetzner-Konto – verknüpfe deine Infrastruktur mit einem API-Token
  2. Konfiguriere deinen Compose-Service – füge deine docker-compose.yml ein
  3. Klicke auf Deploy – lowcloud erledigt den Rest

lowcloud provisioniert automatisch deine VM, richtet den Reverse Proxy mit SSL ein und hält alles aktuell. Ob Docmost, n8n oder dein eigener Stack – wenn es mit Docker Compose läuft, kann lowcloud es deployen. Deine Daten bleiben auf deinem eigenen Server in Deutschland, vollständig DSGVO-konform.

Das Ergebnis: Alle Vorteile des Self-Hostings ohne den DevOps-Overhead.

Bereit, deinen Deployment-Workflow zu vereinfachen? Starte jetzt mit lowcloud und deploye Docmost in unter 10 Minuten.


Weitere Informationen zu Docmost findest du in der offiziellen Dokumentation. Fragen zum Deployment? Das lowcloud-Team hilft gerne weiter.