Files
management/docs/issues/0048-wikijs-in-der-suite-deployen.md

4.5 KiB

type, id, status, created, milestone, priority, area, related
type id status created milestone priority area related
issue 0048 done 2026-08-12 M4 medium infrastructure
docs/adr/0014-wikijs-loest-docusaurus-ab.md
docs/issues/0046-wiki-in-threadnet-server-suite-umziehen.md

Wiki.js in der ThreadNet Server Suite deployen (k8s + Postgres + Git-Storage)

Problem / Motivation

ADR-0014: Wiki.js löst Docusaurus ab und wird Teil der ThreadNet Server Suite (k8s), nicht mehr ein Overmind-Einzelstack. Braucht das Deployment plus den Inhalts-Speicher.

Acceptance

  • Wiki.js läuft in der Suite (k8s): Deployment, Postgres (Rendern/Auth/Suche), in die GitOps-Definition aufgenommen (Flux).
  • Öffentlich erreichbar unter wiki.axion1337.chat (Entscheidung sorb 2026-08-12) — wie die übrigen Subdomains: A-Record → 49.13.132.245, cert-manager Certificate via ClusterIssuer letsencrypt-prod (Secret wiki-axion1337-chat-tls), Traefik-IngressRoute Host(wiki.axion1337.chat) → Service wikijs:3000. Muster: apps/authentik/ingress.yaml. Kein Forward-Auth/Outpost — Wiki.js loggt selbst via OIDC ein (#0049).
  • Neues wiki-Repo auf git.lab angelegt (gespiegelt wie die übrigen), als Wiki.js Git-Storage eingebunden (bidirektionaler Sync) — Inhalt liegt in git (hartes Kriterium, ADR-0014).
  • Grundstruktur für Betrieb und Anwender angelegt (zwei Bereiche); homelab/docs ausdrücklich nicht eingebunden.
  • Postgres ist gesichert (Backup), da git nur Inhalt, nicht den Laufzeit-Zustand hält.

Notes

Ersetzt den Forward-Auth-Zwischenstand auf Overmind (Guide 09, #0024). OIDC + Rollen kommen in #0049, Theming in #0050. Umbrella: #0046.

Update 2026-08-13 — Git-Storage-Architektur korrigiert (Widerspruch)

Deployment, Postgres, Ingress/Cert, öffentliche Erreichbarkeit, OIDC/Rollen (#0049) und Theming (#0050) laufen live und reproduzierbar über den Konfig-Job.

Offen ist nur der Git-Storage — und die oben geforderte Fassung ist so nicht machbar: „wiki-Repo auf git.lab, gespiegelt wie die übrigen, als Storage" setzt voraus, dass Wiki.js git.lab erreicht. Tut es nicht — der Cluster erreicht bewusst nur Gitea (verifiziert 2026-08-13). Auflösung in ADR-0015: Wiki.js→Gitea (sorb/wiki), CI kanonisiert Gitea→git.lab (Muster canonize_rotation).

Voraussetzung (nur sorb): Gitea-Repo sorb/wiki (privat) anlegen + dedizierten Deploy-PAT bereitstellen. Danach verdrahtet der Agent Storage + Kanonisierungs-Job.

Nachtrag 2026-08-13 (nachmittags): Erledigt. Repo sorb/ThreadNetWiki + Deploy-PAT (wiki-git-storage-deploy) angelegt; Git-Storage in Wiki.js verdrahtet (Secret wikijs-git-secret), Status operational, End-to-End verifiziert (Seite anlegen/löschen propagiert nach Gitea). Damit ist das harte Kriterium „Inhalt in git" erfüllt. Einziger Rest: der Kanonisierungs-Job Gitea→git.lab — braucht die Entscheidung, in welches git.lab-Repo kanonisiert wird.

Nachtrag 2026-08-13 (abends): Auch der Kanonisierungs-Job ist erledigt. Ziel-Repo git.lab/axion1337.chat/threadnet-wiki (leer angelegt); canonize_wiki in der gitops-CI (Tages-Schedule) spiegelt Gitea→git.lab per Fast-Forward (kein Force, Protection bleibt; Token WIKI_CANONIZE_TOKEN, nur write_repository). Verifiziert: git.lab main === Gitea main mit voller Historie. Damit ist die Git-Storage-Strecke aus ADR-0015 komplett. Offen für #0048 bleibt nur noch die inhaltliche Grundstruktur (Bereiche Betrieb/Anwender) — die entsteht mit dem ersten echten Inhalt.

Nachtrag 2026-08-13 (spät): Grundstruktur angelegt: home, anwender/ (+ Erste Schritte), betrieb/ (+ Deployment) — liegt in git-storage (Gitea→git.lab). Abschottung verifiziert: wiki-anwender liest nur anwender/* + home; betrieb/* fällt unter Default-Deny (checkAccess: match && !deny). Damit sind alle Acceptance-Punkte erfüllt bis auf das wikijs-postgres-Backup — es existiert (noch) keins. Inhaltlich unkritisch (Inhalt liegt in git), aber Kommentare/lokale Konten/Suchindex wären bei Postgres-Verlust weg. Entscheidung sorb offen: dediziertes Backup wie synapse-backup anlegen, oder bewusst auf die git-Wiederherstellung setzen.

Abschluss 2026-08-13: wikijs-backup angelegt (nächtliches Borg-Backup der Wiki-DB, 03:30, DB-only nach dem authentik-backup-Muster; wiederverwendet synapse-backup-credentials/-known-hosts, eigener Repo-Pfad wikijs-backup). Testlauf grün: Borg-Repo initialisiert, DB gedumpt und hochgeladen, Retention 7/4/6. Damit sind alle Acceptance-Punkte erfüllt → erledigt.