docs(issues): reject #0018 as moot, close #0028 as already running

#0018 builds entirely on the Docusaurus aggregate that ADR-0014 replaced, and
sorb confirms wiki.lab is gone — measured, it resolves but answers nothing, so
the Dokploy stack it asks for was never deployed. Its one live part was step 6:
gitops still claimed the docs were served there, corrected in gitops 82412cf.

#0028 turned out to be built already, on the very path the issue proposed:
stillstandspruefung.py reads remote_mirrors and reports last_error, CI runs it on
schedule, and the git.lab schedule is active daily at 00:42 — so an expired mirror
credential goes red within a day instead of freezing production silently. It also
demonstrably fires: it flagged three repos without an active mirror today.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Thore Cimbal
2026-08-15 12:00:00 +00:00
co-authored by Claude Opus 4.8
parent de908d8307
commit 0e34ec9deb
3 changed files with 56 additions and 7 deletions
@@ -1,13 +1,13 @@
---
type: issue
id: "0018"
status: open
status: rejected
created: 2026-08-01
milestone: M2
priority: low
area: infrastructure
gitlab_iid: "18"
related: []
related: [docs/adr/0014-wikijs-loest-docusaurus-ab.md]
---
# DOC-01: Wiki-Rollout abschließen — CI-Freigaben, Zeitplan, Dokploy-Stack, wiki.lab
@@ -23,3 +23,25 @@ Das Wiki-Repo [`homelab/wiki`](https://git.lab/homelab/wiki) steht ([ADR-0006](h
6. Danach: Link auf wiki.lab in den README der Quell-Repos gegenprüfen (gitops ist erledigt).
**Verifikation:** `https://wiki.lab` zeigt die drei Bereiche; eine Änderung in einer Quelle ist nach dem nächsten geplanten Lauf sichtbar.
## Verworfen 2026-08-15 — gegenstandslos
**`wiki.lab` existiert nicht mehr; die Lesefläche ist in den Stack gewandert** (Bestätigung
sorb). Alle sechs Schritte dieses Issues bauen auf dem Docusaurus-Aggregat auf, das
**ADR-0014** abgelöst hat: *„Wiki.js löst Docusaurus als Plattform-Wiki ab"* und
*„das alte Docusaurus-Prinzip entfällt"* — editiert wird jetzt in Wiki.js unter
`wiki.axion1337.chat`, statt Quell-Repos read-only zu aggregieren.
**Gemessen 2026-08-15:** `wiki.lab` löst zwar noch auf (`10.58.73.17`, Lab-DNS), antwortet
aber nicht (HTTP 000) — der Dokploy-Stack aus Schritt 4 wurde nie deployt. Das Issue
beschreibt also einen Aufbau, den niemand mehr will und der nie lief.
**Erledigter Teil davon:** Schritt 6 (Verweise gegenprüfen) war real offen —
`gitops:AGENTS.md` behauptete weiterhin, die Doku werde als Docusaurus-Seite auf `wiki.lab`
ausgeliefert. Korrigiert in gitops `82412cf`. Doku, die auf etwas Totes zeigt, ist schlimmer
als keine: sie schickt die nächste Session auf die Suche nach einem abgeschalteten Dienst.
⚠️ **Nicht entschieden, gehört sorb:** `homelab/docs` ist laut ADR-0014 **bewusst nicht** Teil
der Plattform und hat damit keine Lesefläche mehr. Ob dafür eine gebraucht wird, ist eine
Lab-Frage. Ebenso, ob **ADR-0006** (Docusaurus als gemeinsame Lesefläche) auf `superseded`
gesetzt werden sollte — ADR-0014 hat nur ADR-0007 abgelöst.
@@ -1,7 +1,7 @@
---
type: issue
id: "0028"
status: open
status: done
created: 2026-08-02
milestone: M2
priority: low
@@ -44,3 +44,32 @@ Nicht Teil dieses Issues: die Rotation der Tokens selbst ([#15](https://git.lab/
---
*Gefunden beim Session-Abschluss 2026-08-02, beim Nachgehen der Randbedingung aus #15.*
## Erledigt 2026-08-15 — der Mechanismus existiert bereits und läuft
Vor dem Bauen geprüft, ob die Lücke noch besteht. Ergebnis: **sie ist geschlossen**, und zwar
genau auf dem Weg, den dieses Issue als zweite Option nannte (Scheduled CI-Job auf git.lab,
Alarm über eine rote Pipeline).
| Baustein | Fundstelle | Zustand |
|---|---|---|
| Prüfung des Mirror-Status | `scripts/stillstandspruefung.py` — liest `remote_mirrors` je Projekt und meldet `last_error` als Befund; ein Repo ganz ohne aktiven Mirror ebenfalls | vorhanden |
| Ausführung | `.gitlab-ci.yml`, Job `stillstandspruefung`, `rules: $CI_PIPELINE_SOURCE == "schedule"` | vorhanden |
| Zeitplan | git.lab-Zeitplan „Stillstandsprüfung (täglich)", `cron 42 0 * * *`, **aktiv**, nächster Lauf geprüft | **läuft** |
| Alarm | Befunde färben die Pipeline rot — dieselbe Alarmanlage wie bei `canonize_rotation` | greift |
**Damit ist der befürchtete Fall abgedeckt:** Läuft das Mirror-Credential ab, meldet die
API `last_error`, der nächste tägliche Lauf macht daraus einen Befund und die Pipeline wird
rot — statt dass die Produktion still auf dem letzten gespiegelten Stand einfriert. Der Weg
ist binnen 24 h wirksam.
**Praxisnachweis am selben Tag:** Die Prüfung hat real angeschlagen — sie meldete für
`gameserver`, `notfallhandbuch` und `threadnet-wiki` „kein aktiver Push-Mirror". Der
Code-Pfad läuft also nicht nur theoretisch. (Bei den letzten beiden ist das Fehlen gewollt
und begründet, ADR-0016 bzw. `mirror: null` in der Komponenten-Deklaration; `gameserver` ist
#0032.)
**Kleine bleibende Lücke, bewusst nicht gebaut:** Geprüft wird `last_error`, nicht
`update_status != "finished"`. Ein Mirror, der ohne Fehlermeldung hängen bliebe, fiele
durch — theoretisch möglich, praktisch bisher nie beobachtet. Eine Erweiterung wäre eine
Zeile, sollte aber einen Anlass haben statt Vorratsbau.