Installation
Docsello mit Docker Compose auf dem eigenen Server betreiben – mit Caddy oder hinter einem vorhandenen nginx.
Docsello läuft als kleiner Docker-Compose-Stack. Die selbst gehostete Ausgabe hat alle Funktionen freigeschaltet.
| Dienst | Aufgabe |
|---|---|
| postgres | Datenbank (Postgres 17) – Inhalte, Verlauf, Benutzer |
| migrate | Bringt beim Start die Datenbank auf den neuesten Stand und beendet sich dann |
| web | Verwaltung (/admin), API, Anmeldung, geschützte Seiten und Vorschauen |
| worker | Generiert die statischen Websites, verarbeitet Bilder und nimmt Screenshots auf |
| caddy (optional) | HTTPS und Auslieferung der statischen Seiten direkt von der Festplatte |
Öffentliche Seiten liefert der Webserver (Caddy oder nginx) direkt als Dateien aus – die Anwendung wird nur für Verwaltung, API, Anmeldung, geschützte Seiten und Vorschauen gefragt.
Voraussetzungen
- Ein Linux-Server mit Docker Engine und dem Compose-Plugin. 2 GB RAM reichen für den Anfang, 4 GB, wenn du viele Screenshots aufnimmst.
- Eine Domain, deren DNS du verwalten kannst.
- Für die Caddy-Variante: Ports 80 und 443 aus dem Internet erreichbar (Let's Encrypt).
Zwei Varianten
Der Standard: Caddy holt die Zertifikate selbst – auch für Workspace-Subdomains und eigene Domains, jeweils beim ersten Aufruf („on demand“). Ein Wildcard-Zertifikat ist nicht nötig.
DNS für APP_URL=https://app.docs.example.com und ROOT_DOMAIN=docs.example.com:
| Eintrag | Zeigt auf |
|---|---|
app.docs.example.com A/AAAA |
deinen Server |
*.docs.example.com A/AAAA (Wildcard) |
deinen Server |
cp .env.example .env && nano .env # siehe „Konfiguration“
docker compose up -d
docker compose ps # postgres, web, worker, caddy healthy; migrate mit 0 beendetAusführlich: docs/SELF_HOSTING.md im Docsello-Repository.
Für Server, auf denen schon ein nginx mit Let's-Encrypt-Zertifikaten läuft: Docsello lauscht nur auf
127.0.0.1:4100, nginx macht HTTPS und liefert die statischen Seiten direkt aus dem Speicherordner aus.
# .env
COMPOSE_FILE=docker-compose.yml:deploy/docker-compose.nginx.yml
DOCSELLO_DATA=/mnt/storage/docsello/datadocker compose up -d --build
curl -s -o /dev/null -w '%{http_code}\n' http://127.0.0.1:4100/api/health # 200Fertige nginx-Konfigurationen liegen unter deploy/nginx/. Ausführlich, Schritt für Schritt: docs/SERVER_INSTALL.md
im Docsello-Repository.
Die Images werden aus dem Dockerfile gebaut (docker compose up -d --build) oder von ghcr.io/ceddini/docsello
bzw. ghcr.io/ceddini/docsello-worker (mit Chromium für Screenshots) geladen.
Erstes Konto
Öffne nach dem ersten Start https://<deine-app-adresse>/auth/signup und registriere dich. Das erste Konto wird
Betreiber (Super-Admin) der Installation und legt den ersten Workspace an. Danach ist die Registrierung geschlossen:
Alle weiteren Personen kommen per Einladung oder Single Sign-on.
Danach
- Startseite → Domains: die Domain der Dokumentation hinzufügen und Prüfen – siehe Domains.
- Einstellungen: optional einen Anmelde-Anbieter einrichten.
- API & Tokens: einen Token für die CI anlegen, siehe Docs aus Git.
- Backups einrichten.