Files

73 lines
3.3 KiB
Markdown
Raw Permalink Normal View History

---
type: adr
id: "0014"
status: accepted
date: 2026-08-12
supersedes: docs/adr/0007-wiki-oberflaeche-docusaurus-vs-bookstack.md
superseded_by: null
related: [docs/issues/0047-wiki-oberflaeche-ueber-bookstack-hinaus-pruefen.md, docs/issues/0046-wiki-in-threadnet-server-suite-umziehen.md]
---
# 0014 — Wiki.js löst Docusaurus ab: abgeschottete Betriebs-/Anwenderdoku, docs-as-code
## Kontext
ADR-0007 hielt „Docusaurus läuft, BookStack als Gegenentwurf" fest (Status
`proposed`). Docusaurus ist statisch — kein Nutzermodell, Zugang nur als
Alles-oder-nichts-Tor (Authentik-Forward-Auth, gitops-Guide 09). Drei harte
Anforderungen von sorb (2026-08-12) sprengen das:
1. **Abschottung nach Gruppe** — Anwender dürfen die Betriebsdoku nicht sehen.
2. **docs-as-code in git** — hartes, nicht verhandelbares Kriterium.
3. **Rollen** — Admins editieren Betriebs- und Anwenderhandbücher, normale
Nutzer nur lesen.
Statisches Docusaurus kann (1) und (3) strukturell nicht: es weiß zur Bauzeit
nicht, wer guckt.
## Betrachtete Optionen
- **Mehrere Docusaurus-Instanzen + Routing** — Silos, geteilte Suche/Navigation,
brechende Querverweise. Verworfen.
- **Docusaurus + Pfad-ACL im Proxy** (Gruppen-Header) — gibt 403 statt Verstecken,
Sidebar und Suche zeigen Verbotenes weiter. Verworfen.
- **BookStack** — native Gruppen-Rechte + OIDC, aber Inhalt nur in der DB, **kein
git**. Scheitert am harten docs-as-code-Kriterium. Verworfen.
- **Wiki.js** — native Pfad-/Seiten-Regeln pro Gruppe **und** Git-Storage-Modul
(Inhalt in einem git-Repo). Erfüllt als einziges beide harten Kriterien.
## Entscheidung
**Wiki.js löst Docusaurus als Plattform-Wiki ab.**
- **Deployment** in die ThreadNet Server Suite (k8s), nicht mehr als
Overmind-Einzelstack — löst den Forward-Auth-Zwischenstand (Guide 09,
`axionwiki.lab`/#0024) ab.
- **Inhalt** in einem **dedizierten `wiki`-Repo** (Git-Storage). Kein Branch eines
bestehenden Repos, kein Voll-Monorepo (Forkbarkeit der Produkte, Flux/Mirror pro
Repo — Monorepo-Vorhaben liegt auf Eis, sorb).
- **Rollen über Authentik-Gruppen**: Admins schreiben Betriebs- +
Anwenderhandbücher; normale Nutzer nur lesen; Anwender sehen die Betriebsdoku
nicht (Abschottung).
- **Scope**: nur Betriebs- und Anwenderdoku. **`homelab/docs` bleibt draußen** —
sorbs Homelab-Doku ist nicht Teil der Plattform.
- Die Neckbeard-Framework-Artefakte (ADRs/AARs/Issues/Vision, von `validate.py`
geprüft) **bleiben in `management`**; Wiki.js übernimmt sie nicht.
## Konsequenzen
- **docs-as-code bleibt gewahrt** — Wiki.js hält den Inhalt in git; harte
Anforderung erfüllt.
- **Postgres nötig** fürs Rendern/Auth/Suche. Kein Widerspruch zum git-Kriterium:
git ist die Inhalts-Quelle, die DB ist Laufzeit-Cache/Index — braucht aber ein
Backup.
- **Autorenmodell dreht sich**: editiert wird in Wiki.js, nicht mehr in den
Quell-Repos read-only aggregiert (das alte Docusaurus-Prinzip entfällt für die
Betriebs-/Anwenderdoku).
- **Neues `wiki`-Repo** auf git.lab (gespiegelt wie die übrigen).
- **Docusaurus + Guide 09** werden abgelöst; Guide 09 bleibt als Historie bis zur
Umstellung.
- **ADR-0007** wird `superseded`.
- Offen (Folge-Issues): Deployment in der Suite, Git-Storage, OIDC + Rollen/
Abschottung, Theming — siehe #0046 und die daraus abgeleiteten Bau-Issues.