# Wissensdatenbank per Docker selbst hosten: 3 Tools

Docker-Compose für OSS-Wissensdatenbanken. Reverse-Proxy, Backup, Updates und die echte Pflege-Realität bei Self-Hosting für DACH-Teams.

Source: https://www.happysupport.ai/de/blog/docker-self-hosted-wissensdatenbank
Published: 2026-06-04 · Updated: 2026-08-05
Author: Henrik Roth, Marketing Manager, HappySupport

## Summary

- Docker Compose ist die häufigste Deployment-Methode für selbst-gehostete Wissensdatenbanken.
- Dieser Artikel zeigt Docker-Compose-Beispiele für die drei häufigsten OSS-KB-Tools, Reverse-Proxy-Konfiguration mit Nginx, Caddy oder Traefik, Backup-Strategie und die Pflege-Realität.
- Start: docker compose up -d.

---

Docker Compose ist die häufigste Deployment-Methode für selbst-gehostete Wissensdatenbanken. BookStack, Wiki.js, Outline laufen alle als offizielle Docker-Images. Setup ist vergleichsweise einfach, der laufende Betrieb ist die eigentliche Arbeit.

Dieser Artikel zeigt Docker-Compose-Beispiele für die drei häufigsten OSS-KB-Tools, Reverse-Proxy-Konfiguration mit Nginx, Caddy oder Traefik, Backup-Strategie und die Pflege-Realität.

## BookStack mit Docker Compose

Minimal-Setup mit BookStack und MariaDB:

```
version: "3.8"
services:
  bookstack:
    image: linuxserver/bookstack:latest
    container_name: bookstack
    environment:
      - APP_URL=https://kb.example.de
      - DB_HOST=bookstack_db
      - DB_USER=bookstack
      - DB_PASS=changeme
      - DB_DATABASE=bookstackapp
    ports:
      - 6875:80
    volumes:
      - ./bookstack_data:/config
    depends_on:
      - bookstack_db

  bookstack_db:
    image: linuxserver/mariadb:latest
    environment:
      - MYSQL_ROOT_PASSWORD=changeme
      - MYSQL_DATABASE=bookstackapp
      - MYSQL_USER=bookstack
      - MYSQL_PASSWORD=changeme
    volumes:
      - ./bookstack_db:/config
```

Start: `docker compose up -d`. Erste Anmeldung über die im Image dokumentierten Default-Credentials, sofort ändern.

## Wiki.js mit Docker Compose

Minimal-Setup mit Wiki.js und PostgreSQL:

```
version: "3.8"
services:
  wikijs:
    image: ghcr.io/requarks/wiki:latest
    environment:
      DB_TYPE: postgres
      DB_HOST: wikijs_db
      DB_USER: wikijs
      DB_PASS: changeme
      DB_NAME: wikijs
    ports:
      - 3000:3000
    depends_on:
      - wikijs_db

  wikijs_db:
    image: postgres:15-alpine
    environment:
      POSTGRES_DB: wikijs
      POSTGRES_PASSWORD: changeme
      POSTGRES_USER: wikijs
    volumes:
      - ./wikijs_db:/var/lib/postgresql/data
```

## Reverse-Proxy mit Nginx

BookStack oder Wiki.js läuft auf einem internen Port. Vor das Setup gehört ein Reverse-Proxy mit SSL-Termination. Nginx-Beispiel:

```
server &#123;
    listen 443 ssl http2;
    server_name kb.example.de;

    ssl_certificate /etc/letsencrypt/live/kb.example.de/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/kb.example.de/privkey.pem;

    location / &#123;
        proxy_pass http://localhost:6875;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    &#125;
&#125;
```

SSL-Zertifikat über Let's Encrypt via Certbot. Auto-Renewal via Cron.

## Caddy als einfachere Alternative

Caddy nimmt SSL-Setup automatisch. Caddyfile:

```
kb.example.de &#123;
    reverse_proxy localhost:6875
&#125;
```

Caddy beantragt automatisch ein Let's Encrypt-Zertifikat und erneuert es. Für DACH-SaaS-Teams mit minimaler Sysadmin-Kapazität ist Caddy oft die pragmatischere Wahl als Nginx.

## Traefik für Multi-Service-Setups

Wenn mehrere Services parallel laufen (KB plus Ticket-System plus Status-Page), ist Traefik praktisch. Konfiguration über Labels direkt im Docker-Compose-File, was Onboarding neuer Services vereinfacht.

## Backup-Strategie

Drei Schichten von Backups. Erstens: Datenbank-Dump täglich, mit mindestens 30 Tagen Retention. PostgreSQL via `pg_dump`, MariaDB via `mysqldump`. Cron-Job im Datenbank-Container oder als sidecar.

Zweitens: File-Volume-Backup. Anhänge, Bilder, Konfigurationen liegen auf Volumes. `tar`\-Archiv täglich, off-site geschoben via rclone oder Borgbackup.

Drittens: Off-Site-Replikation. Backups in einer zweiten Region oder bei einem anderen Anbieter. AWS S3 plus Glacier, Backblaze B2, deutscher Anbieter wie Hetzner Storage Box.

Recovery testen: einmal pro Quartal das Backup in einer Staging-Umgebung wiederherstellen. Backups, die nicht testbar wiederhergestellt werden können, sind keine Backups.

## Update-Strategie

Container-Images updaten ist trivial (`docker compose pull && docker compose up -d`), das Pflege-Problem liegt davor: wer prüft Release-Notes, wer entscheidet wann updaten, wer testet vor Production.

Empfohlen: Watchtower für automatische Image-Updates ist riskant, weil unkontrollierte Major-Updates Datenbank-Migrationen mit sich bringen können. Besser: monatlicher manueller Update-Run mit Staging-Test vorab.

## Die Pflege-Realität

Hosting ist 5 bis 50 EUR pro Monat für einen VPS. Personal-Aufwand ist 4 bis 12 Stunden pro Monat: Sicherheits-Updates, Backups verifizieren, Recovery-Tests, gelegentliche Performance-Tunings, SSL-Cert-Renewals (falls nicht automatisiert). Bei 60 EUR pro Stunde Sysadmin-Kosten heißt das 240 bis 720 EUR monatlich in versteckten Kosten.

Tool ist gratis, deine Zeit nicht. Das ist die zentrale Frage bei Self-Hosting: gibt es freie Sysadmin-Kapazität, oder konkurrieren KB-Updates mit anderen Prioritäten.

## HappySupport im Kontext

HappySupport ist nicht selbst-gehostet. Wer Docker-Self-Hosting bewusst wählt, hat meist gute Gründe: harte Datenresidenz, vorhandene Sysadmin-Tiefe, technisches Team-Profil. Wer das nicht hat, fährt mit einem gehosteten Anbieter besser, der die Infrastruktur als Service liefert.

HappySupport hostet in Frankfurt mit deutschem Rechtsträger und liefert DSGVO-Kontrolle ohne den Self-Hosting-Aufwand. Mehr in [selbst-aktualisierende Wissensdatenbank](/blog/selbst-aktualisierende-wissensdatenbank), in [DSGVO-konforme Wissensdatenbank](/blog/dsgvo-wissensdatenbank) und in der Übersicht [beste Wissensdatenbank-Software](/blog/beste-wissensdatenbank-software).

## FAQ

### Welche OSS-Wissensdatenbanken laufen unter Docker?

Alle wichtigen OSS-KB-Tools haben offizielle Docker-Images. BookStack als linuxserver/bookstack mit MariaDB, Wiki.js als ghcr.io/requarks/wiki mit PostgreSQL, Outline als outlinewiki/outline mit PostgreSQL plus Redis, DokuWiki als nilsmuermann/dokuwiki ohne Datenbank, Zammad als zammad/zammad-docker-compose mit PostgreSQL, Elasticsearch, Redis. Setup über Docker Compose unter zehn Minuten.

### Wie sieht eine gute Reverse-Proxy-Konfiguration aus?

Drei Optionen je nach Team-Profil. Nginx ist klassisch und gut dokumentiert, braucht aber Certbot für Let's Encrypt-Automatisierung. Caddy nimmt SSL-Setup vollständig automatisch und ist die pragmatische Wahl für Teams mit minimaler Sysadmin-Kapazität. Traefik ist sinnvoll bei Multi-Service-Setups, weil Routing über Docker-Labels direkt im Compose-File konfiguriert wird.

### Welche Backup-Strategie passt für selbst-gehostete KB?

Drei Schichten. Erstens: tägliche Datenbank-Dumps mit mindestens 30 Tagen Retention, PostgreSQL via pg_dump oder MariaDB via mysqldump. Zweitens: File-Volume-Backup für Anhänge, Bilder, Konfigurationen, als tar-Archiv off-site geschoben. Drittens: Off-Site-Replikation bei einem zweiten Anbieter. Recovery quartalsweise in Staging-Umgebung testen, ungetesteter Backup ist kein Backup.

### Wie häufig muss ich die Container updaten?

Monatlich ein Update-Run mit Staging-Test vorab ist ein realistischer Rhythmus für Production-Setups. Sicherheits-Updates können häufiger nötig sein, je nach CVE-Status. Watchtower für automatische Image-Updates ist riskant bei Major-Releases, weil Datenbank-Migrationen ungetestet laufen. Bei kritischen Setups manueller Update-Workflow mit Backup vor jedem Update.

### Was kostet Self-Hosting wirklich pro Monat?

VPS-Hosting ab 5 bis 50 EUR pro Monat ist der sichtbare Kosten-Block. Personal-Aufwand ist der versteckte: 4 bis 12 Stunden pro Monat für Sicherheits-Updates, Backup-Verifikation, Recovery-Tests, gelegentliche Performance-Tunings, SSL-Renewals. Bei 60 EUR pro Stunde Sysadmin-Kosten ergibt das 240 bis 720 EUR monatlich on top. Tool ist gratis, deine Zeit nicht.
