Gate 4, slice 3: verfahren/, hosts/, vision/ and shared/ moved via git mv - six AARs to docs/aar/ (four harvested by the 2026-08-09 retro, two open), procedures and host knowledge to docs/wiki/ (admin, deployment, architecture, new area vision), the retro protocol and the commit mapping table to docs/sources/ (protokolle/, migration/). New: the wiki index linking every page, and the mirror-topology page carrying the why-two-places reasoning verbatim from the old CLAUDE.md (F-013 preserved). All moved-path references retargeted; the link checker drove the sweep to zero. pruefe_prosa.py added (pattern C+D): SHA citations resolve via repo, mapping table, optional component clones or a curated exemption list (documented dead Gitea-force-push commits, a vendor-repo tag, an Authentik uid that is hex but no git SHA, the external neckbeard reference); wiki task prose without an issue reference errors, with a visible pragma for deliberate checklists; the dead-tracker denylist now covers every mirrored repo's retired Gitea tracker (F-005) - two links re-verified against live GitLab titles and retargeted, five defused into honest historical citations. Verified: validate 0/0, gen_status --check current, drift 0. Demo on the pre-migration state fires 6 findings (3 orphaned SHAs, 3 task blocks); on the current tree exactly the 3 F-004 task blocks remain - they turn green in slice 4 when the issues exist, which is why pruefe_prosa joins CI only then. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
65 lines
3.7 KiB
Markdown
65 lines
3.7 KiB
Markdown
---
|
|
type: wiki-page
|
|
area: architecture
|
|
related:
|
|
- "docs/adr/0001-gitlab-kanonisch-push-mirror.md"
|
|
- "docs/adr/0002-issues-und-management-ins-lab.md"
|
|
- "docs/adr/0004-site-to-site-vpn-hetzner-lab.md"
|
|
- "docs/adr/0006-wikis-konsolidieren-docusaurus.md"
|
|
---
|
|
|
|
# Mirror-Topologie: Das Lab ist die Quelle der Wahrheit
|
|
|
|
Begründungsprosa übernommen aus der alten `CLAUDE.md` (Abschnitt
|
|
„Projektrealitäten", Wortlaut in der git-Historie vor der
|
|
neckbeard-Migration); die verbindlichen Regeln stehen in `AGENTS.md` §6
|
|
und den verlinkten ADRs. Erhalten per Feldtest-Befund F-013: Diese
|
|
Begründung samt Gegenargument und Rettungspfad ist der Wert — sie
|
|
erklärt, warum die Topologie so aussieht und so bleiben soll.
|
|
|
|
- Kanonische Repos liegen auf `git.lab/axion1337.chat/*` (nur im
|
|
Lab/VPN auflösbar). Gitea/rohana wird per **Push-Mirror** beliefert
|
|
und bleibt Flux-Source, Container-/npm-Registry und Release-Download
|
|
([ADR-0001](../../adr/0001-gitlab-kanonisch-push-mirror.md)).
|
|
- **Warum überhaupt zwei Orte — und warum das kein Altbestand ist:**
|
|
Auf git.lab liegen die *Baupläne*, auf Gitea eine Kopie, die der
|
|
Cluster **ohne verfügbares Lab** erreicht. Der Hetzner-Cluster muss
|
|
sich bauen und neu ausrollen lassen, wenn das Homelab aus ist, im
|
|
Umbau steckt oder niemand zu Hause ist — er darf deshalb nicht von
|
|
einem Host abhängen, der nur im Lab antwortet.
|
|
⚠️ **Die Flux-Quelle nicht „geradeziehen"** auf git.lab: Das sähe
|
|
aufgeräumter aus und würde die Verfügbarkeit der Produktion an das
|
|
Lab koppeln — genau das, was die Trennung verhindert.
|
|
- **Gespiegelt wird nur die Gruppe `axion1337.chat`** (die Produkt-Repos
|
|
und `management`). Die Gruppe **`homelab`** (`docs`, `wiki`,
|
|
`wiki-bookstack`) hat bewusst **keine Mirrors**: Sie beschreibt und
|
|
konfiguriert ausschließlich Lab-Infrastruktur, und seit dem
|
|
Site-to-Site-VPN ([ADR-0004](../../adr/0004-site-to-site-vpn-hetzner-lab.md))
|
|
erreichen auch Host-Sessions git.lab direkt — Tunnel einschalten
|
|
genügt. Betriebslehren, die von außen lesbar sein müssen, gehören
|
|
deshalb in die **AARs** unter `docs/aar/` (dieses Repo ist
|
|
gespiegelt), nicht nur in die READMEs der Lab-Repos.
|
|
- Landet doch ein Commit auf Gitea (z. B. aus einer Host-Session ohne
|
|
Lab-Route): **Kanonisierungs-Verfahren** in
|
|
[deploy-uebergabe](../deployment/deploy-uebergabe.md) — `.patch` von
|
|
Gitea ziehen, `git am` (erhält Autorschaft), Push über git.lab.
|
|
- ⚠️ gitops-Issue-Nummern haben sich beim Gitea-Umzug verschoben (Gitea
|
|
zählte PRs mit; z. B. Gitea#48 → GitLab#46) — alte „gitops#N"-Verweise
|
|
meinen die Gitea-Nummer; verbindlich ist der Migrations-Fußtext im
|
|
Issue ([ADR-0002](../../adr/0002-issues-und-management-ins-lab.md)).
|
|
- **Ausnahme** (bewusst entschieden, nur noch eine): der
|
|
TURN-Rotations-CronJob schreibt weiter nach Gitea, weil er im Cluster
|
|
läuft und git.lab nicht erreicht. **Die Rotation nicht von Hand
|
|
nachziehen und den PR nie auf Gitea mergen** — das erledigt seit
|
|
2026-08-02 der geplante CI-Job `canonize_rotation` im gitops-Repo
|
|
täglich von git.lab aus. Scheitert er, bleibt die Pipeline rot; diese
|
|
rote Pipeline **ist** der Alarm, einen zusätzlichen Termin gibt es
|
|
bewusst nicht.
|
|
- **Dokumentation** ([ADR-0006](../../adr/0006-wikis-konsolidieren-docusaurus.md)):
|
|
Das gitops-Wiki liegt seit 2026-08-02 auf git.lab (*Wiki*-Reiter im
|
|
Projekt); ⚠️ der `wiki`-**Branch** im gitops-Repo ist ein überholter
|
|
Mai-Abzug von `docs/` und nicht die gepflegte Fassung. Alle Quellen
|
|
zusammen erscheinen unter **axionwiki.lab**
|
|
([`homelab/wiki`](https://git.lab/homelab/wiki), Docusaurus) —
|
|
Inhalte werden beim Bau geholt, **Änderungen gehören ins Quell-Repo**.
|