Dokumentation bauen und veröffentlichen¶
Diese Seite beschreibt den Buildvorgang der MkDocs-Dokumentation. Sie ist bewusst unabhängig von Agenten-Skills gehalten, damit der Ablauf direkt auf dem Server nachvollziehbar bleibt.
Pfade¶
| Zweck | Pfad |
|---|---|
| MkDocs-Konfiguration | /opt/selfhost/mkdocs.yml |
| Markdown-Quellen | /opt/selfhost/docs/ |
| Build-Ausgabe / Webroot | /opt/selfhost/site/ |
| MkDocs-Virtualenv | /opt/selfhost/tools/mkdocs-venv/ |
| Build-Skript | /opt/selfhost/docs/scripts/build-docs.sh |
Die Webseite wird aus /opt/selfhost/site/ ausgeliefert. Dieser Ordner ist ein Build-Artefakt und wird nicht von Hand bearbeitet.
Einmalige Installation / Aktualisierung der Build-Umgebung¶
MkDocs ist in einer lokalen virtuellen Python-Umgebung installiert. Falls diese Umgebung fehlt oder erneuert werden soll:
cd /opt/selfhost
python3 -m venv /opt/selfhost/tools/mkdocs-venv
/opt/selfhost/tools/mkdocs-venv/bin/pip install --upgrade pip
/opt/selfhost/tools/mkdocs-venv/bin/pip install --upgrade mkdocs mkdocs-material
Manueller Strict-Build¶
Nach Änderungen an der Dokumentation sollte immer ein Strict-Build ausgeführt werden:
cd /opt/selfhost
/opt/selfhost/tools/mkdocs-venv/bin/mkdocs build --strict
Wichtige Eigenschaften:
--strictbricht bei MkDocs-Warnungen ab.- Interne Markdown-Links werden dadurch geprüft.
- Das Ergebnis landet gemäß
mkdocs.ymlunter/opt/selfhost/site/. - Externe Links werden dabei nicht vollständig als HTTP-Check geprüft.
Empfohlenes Build-Skript¶
Für den Normalfall gibt es ein fertiges Skript:
/opt/selfhost/docs/scripts/build-docs.sh
Das Skript prüft zuerst, ob die MkDocs-Umgebung vorhanden ist, baut anschließend strict und zeigt danach kurz den Ausgabeordner an.
Route der veröffentlichten Dokumentation¶
Die veröffentlichte Dokumentation ist als statische Caddy-Route über die Subdomain Registry definiert:
| Feld | Wert |
|---|---|
| Route-ID | serverdocs |
| Hostname | serverdocs.marcosudau.com |
| Typ | static |
| Root | /opt/selfhost/site |
| Zugriff | Tailnet-only; außerhalb wird die OpenClaw-Hinweisseite angezeigt |
Änderungen an der Route erfolgen nicht direkt in Caddy, sondern über /opt/selfhost/registry/routes.json und anschließend:
sudo /opt/selfhost/tools/selfhost-routes validate
sudo /opt/selfhost/tools/selfhost-routes generate --apply-homepage
sudo caddy validate --config /etc/caddy/Caddyfile
sudo systemctl reload caddy
Nach einem erfolgreichen Build prüfen¶
# Lokale Dateien vorhanden?
test -f /opt/selfhost/site/index.html && echo ok
# Caddy-Konfiguration gültig?
sudo caddy validate --config /etc/caddy/Caddyfile
# Optional: HTTP-Header über Caddy prüfen, wenn DNS/Tailnet erreichbar ist
curl -I https://serverdocs.marcosudau.com/
Konventionen¶
- Markdown-Quellen werden unter
/opt/selfhost/docs/gepflegt. - Die Navigation wird in
/opt/selfhost/mkdocs.ymlexplizit gepflegt. - Neue Seiten sollten direkt in
mkdocs.ymleingetragen werden, damitmkdocs build --strictfehlende Dateien oder defekte Links früh findet. - Secrets, Passwörter, API-Keys und Tokens werden nie in der Dokumentation ausgeschrieben.