Commit Graph
18 Commits
Author SHA1 Message Date
Thore Cimbal 46c61e1c1e docs: record that moving tags retriggers release builds
Force-pushing the rewritten tags restarted three release pipelines in ThreadNet-Web. Nothing was overwritten, but only because the protected registry variables were unavailable while the v* tag rule was temporarily removed for the push - docker login died after four seconds.

That was luck rather than planning: with tag protection in place, threadnet-web:v0.4.0 would have been rebuilt from old code against today's dependencies and pushed over the published image. Tracked as ThreadNet-Web#14.
2026-08-09 12:00:00 +00:00
Thore Cimbal 2b20f65c4a docs: add the old-to-new commit mapping of the 2026-08-07 rewrite
251 verified pairs, reconstructed from the backup branches: every pair had to match on both tree hash and commit message before being accepted, and all 251 did.

This keeps older references resolvable without editing what was written at the time. Rewriting historical issue comments would remove the record of what someone actually wrote, and a lookup table costs nothing by comparison.
2026-08-09 12:00:00 +00:00
Thore Cimbal d7db11166f docs: repoint commit references after the history rewrite
The anonymisation rewrite of 2026-08-07 gave every touched commit a new SHA, leaving the references in these documents pointing at objects that no longer exist. The mapping was reconstructed from the backup branches and each pair verified by tree and commit message before substituting.

Prefix lookups were built for lengths 7 to 12 and any ambiguous prefix would have been skipped; none were ambiguous across all 251 pairs.
2026-08-09 12:00:00 +00:00
Thore Cimbal 0abd26e416 branding: Authentik-Logo-Rueckbau nachziehen
Die Tabelle behauptete, auch das Logo werde von axion1337.chat referenziert - seit dem Rueckbau stimmt das nicht mehr. Dazu die Begruendung, warum dort kein PNG funktioniert (Authentiks Default ist ein SVG, das sich seiner Box anpasst; ein PNG nimmt Naturgroesse) und der Hinweis, dass eine Auswahl in Authentiks Oberflaeche vom Blueprint ueberschrieben wird.

Refs gitops#55, management#29
2026-08-06 12:00:00 +00:00
Thore Cimbal 3eb27b3a62 branding: Titelbild, Call-Widget und Authentik-Brand nachgehalten
Die Namenstabelle hatte zwei Ebenen, jetzt vier: Call-Widget folgt der In-Anwendung-Regel (aXion1337.Chat), die Anmeldeseite bekommt ThreadNet - man meldet sich am Werkzeug an, nicht in der Gemeinschaft.

Neu dokumentiert: das Unsplash-Titelbild samt Lizenzlage, warum die Danksagung bewusst unuebersetzt bleibt (Elements Schluessel steckt in 32 Sprachdateien, 31 nennen deren Fotografen - en/de allein zu aendern haette in 29 Sprachen eine falsche Attribution stehen gelassen), und dass Authentiks Anmeldeseite an genau dieser Bilddatei haengt.
2026-08-06 12:00:00 +00:00
Thore CimbalandClaude Fable 5 f1b60d815b branding: Icon-Zentrierung als eigener Schritt + Namensgebung erklaert
Zwei Ergaenzungen aus dem v0.4.0-Release.

Das Icon-Rezept war unvollstaendig. Es warnte davor, thumbnail() statt resize()
zu nehmen - aber nicht davor, das Motiv nach dem Beschneiden auch mittig zu
setzen. Genau das ging schief: 81 % Breite gefuellt, aber 3 % Rand oben und 40 %
unten, das Motiv klebte an der Oberkante. Faellt in runden und quadratischen
Icon-Slots sofort auf. Das vollstaendige Rezept steht jetzt da, dazu die Liste
aller elf Icon-Artefakte und wie man per Pruefsumme feststellt, ob eines
nachgezogen wurde und ein anderes nicht.

Die Namensgebung ist gespalten: ThreadNet auf Betriebssystem- und PWA-Ebene,
aXion1337.Chat im Client. Das folgt der Leitplanke aus vision/threadnet.md - das
Programm ist das Tool, die Instanz darin die Community. Wer nur eine der beiden
Stellen sieht, haelt es fuer eine Inkonsistenz und zieht es gerade; deshalb steht
jetzt ausdruecklich da, dass es keine ist.

Dazu die Attribution: seit v0.4.0 in Einstellungen -> Hilfe & Info unter der
Client-Version, bewusst NICHT im Kopiertext der Versionsangabe - der landet in
Fehlerberichten, dort ist die Fork-Herkunft nur Rauschen.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PKhFj1S3UdD6xL2fbWPeYj
2026-08-06 12:00:00 +00:00
Thore CimbalandClaude Fable 5 d019bfedda zone: erklaert, was die Mail-Records tun - plus gemessener Ist-Stand
Die Rezepte in ZONE-01 nannten Werte (Null-MX, v=spf1 -all, p=reject), ohne zu
sagen, wogegen sie schuetzen. Wer sie umsetzt, ohne das zu wissen, kann nicht
erkennen, wann ein Halbfertig-Zustand schlechter ist als der Ausgangszustand -
und genau das ist eingetreten.

Ergaenzt: die vier Mechanismen einzeln (SPF, DKIM, DMARC, Null-MX), was jeder
beantwortet und warum keiner allein reicht. Zwei Punkte, die man kennen muss:

- SPF darf nur EINMAL je Name existieren; ein zweiter Record erzeugt PermError,
  und dann pruefen viele Empfaenger gar nicht mehr. Die Haertung schlaegt ins
  Gegenteil um.
- DMARC wird vererbt. Fehlt _dmarc.<name>, gilt die Policy des Apex - und die
  steht auf p=none. Damit erben ALLE Subdomains 'kein Schutz', egal wie sauber
  ihr SPF ist. Der Apex ist damit der groesste Hebel der Zone (ZONE-02), nicht
  die Einzelnamen (ZONE-01).

Dazu der gemessene Ist-Stand (DoH, um den Lab-Resolver zu umgehen): Bei rohana
sind MX und SPF geloescht, die Ersatz-Records fehlen. Vorher gab es wenigstens
ein Softfail-SPF, jetzt gar keine Aussage - keine Aussage ist schwaecher als eine
schlechte. Bei selendis ist nur das www weg, der Mail-Satz steht unveraendert.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PKhFj1S3UdD6xL2fbWPeYj
2026-08-06 12:00:00 +00:00
Thore CimbalandClaude Fable 5 164d96dddd lab-netzwerk: VPN-Thema als abgeschlossen und validiert festgehalten
sorb hat das VPN-Thema am 2026-08-02 fuer abgeschlossen und validiert erklaert.
Das Dokument trug das nicht: Es listete unten 'Offene Punkte' mit #11 und #12,
und der abgearbeitete Diagnose-Plan von LABNET-01 stand ohne Kennzeichnung
mitten im Text, als waere er noch zu tun.

- Banner oben: abgeschlossen und validiert, keine offenen Issues, alles
  Folgende ist Bestand und Historie
- Die Abschnittsueberschrift 'Offene Punkte' war schlicht falsch - jetzt
  'Zugehoerige Issues - alle geschlossen', mit Tabelle statt Liste
- Der Diagnose-Plan bekommt einen Warnhinweis: abgearbeitet und ueberholt,
  steht nur als Beleg der Ursachensuche da

Abgegrenzt: #13 (LABNET-03) und #15 (CFGMON-15) tragen LABNET im Text, gehoeren
aber nicht zum VPN-Thema und bleiben offen - der eine ist der Rueckbau der
Gitea-Ausnahme, der andere Credential-Hygiene, bei der ein Widerruf still einen
Push-Mirror brechen kann. Beides steht jetzt ausdruecklich da, damit die
Abnahme nicht faelschlich auch diese beiden mit einschliesst.

Issues #11 und #16 sind mit Begruendung geschlossen.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PKhFj1S3UdD6xL2fbWPeYj
2026-08-02 12:00:00 +00:00
Thore CimbalandClaude Fable 5 e549de8247 lab-netzwerk: Rollenverteilung zu homelab/docs explizit gemacht
Beide Dokumente beanspruchten schriftlich 'Bestand': das README von homelab/docs
('hier steht, was Bestand hat') und dieses Repo (README: hosts/ und shared/ =
'Bestand + Historie'). Die WireGuard-Tabelle stand entsprechend doppelt, ohne
dass irgendwo stand, welche Fassung gilt - der Zustand, den ADR-0002 fuer Issues
gerade aufgeloest hat.

Die Doppelung ist berechtigt, aber aus einem Grund, der nirgends stand: die
Gruppe homelab hat bewusst keine Mirrors und ist von ausserhalb des Labs nicht
lesbar. Wer ohne Tunnel nachsehen will, welcher Tunnel auf welchem Port liegt,
braucht die Kurzfassung hier. Also nicht entdoppelt, sondern die Rollen benannt:
homelab/docs fuehrt die Soll-Konfiguration und gewinnt bei Widerspruch, dieses
Repo die Historie plus einen bewusst knappen Ueberblick.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PKhFj1S3UdD6xL2fbWPeYj
2026-08-02 12:00:00 +00:00
Thore CimbalandClaude Fable 5 92dac0be23 branding: von vision/ nach shared/ verschoben + AAR-Nachtrag
vision/ ist laut README 'eine Vision je Linie' - drei Linien, drei Dateien, alle
als Entwurf fuers Refinement markiert. branding.md ist keine Vision, sondern
Bestand und Historie eines uebergreifenden Themas, also genau das, was shared/
beschreibt (neben lab-netzwerk.md und zone-axion1337.md).

Der Beleg fuer den Fehlgriff steckte im letzten Commit selbst: ich musste die
README-Beschreibung von vision/ um einen Zusatz erweitern, damit die Datei
hineinpasst. Eine Kategorie aufzubohren, damit ein Artefakt hineinpasst, heisst,
dass es in die falsche Kategorie sollte. Die Zeile ist zurueckgebaut.

Ausserdem praezisiert, warum das Dokument in genau diesem Repo liegt: management
ist gespiegelt, homelab/wiki-bookstack nicht - die dortige theme/sorbs-palette.md
ist von ausserhalb des Labs nicht lesbar (CLAUDE.md, Mirror-Geltungsbereich).
Beide Rollen stehen jetzt explizit da.

AAR 2026-08-02: Nachtrag zur Theme-Korrektur. Die Ergebniszeile behauptete '11
neue Themes, Web live' - die Paletten waren aber erfunden. Statt die Historie
umzuschreiben ein datierter Nachtrag mit Verweis in der Zeile. Er schaerft das
Muster aus Abschnitt 4: erfundene Vorlagen erzeugen kein Symptom, an dem man sie
bemerkt - deshalb ist bei Vorlagen die Quelle zu pruefen, nicht nur das Ergebnis.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PKhFj1S3UdD6xL2fbWPeYj
2026-08-02 12:00:00 +00:00
Thore CimbalandClaude Fable 5 830c740a58 LABNET-02 abgeschlossen: ADR-0004 akzeptiert (Architektur v2), AAR Lab-Seite
- ADR-0004: Status akzeptiert; real gebaute Architektur v2 dokumentiert
  (UniFi bietet kein WG-Site-to-Site -> UDM-Server + CFGMON als Client mit
  'Networks Behind Client'), inkl. Messwerten aus dem Negativtest
- AAR Lab-Seite: 5 Befunde, Eingrenzungsmethodik, 5 Lehren (u.a. 'Server'-Auswahl
  erfasst nur das Tunnel-Subnetz; Portbedingung gehoert in beide Portfelder)
- README: Uebergabe-Issue-Ausnahme als auslaufend markiert
- shared/lab-netzwerk.md: beide WG-Zugaenge tabellarisch

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PKhFj1S3UdD6xL2fbWPeYj
2026-08-01 12:00:00 +00:00
Thore CimbalandClaude Fable 5 fdf30d42e1 Framework-Umbau: Backlogs wird management-Repo (ADR-0005, Kanban + Scrum-Elemente)
- decisions/: ADR-Verzeichnis mit Template + 0001-0005 (git.lab-Kanonik,
  Lab-Cutover, CVE-Meldeweg, Site-to-Site-VPN-Design, Framework-Wahl)
- vision/: je eine Vision fuer Community/Tool/Plattform (Entwuerfe)
- roadmap.md: Linien, Meilenstein-Kandidaten, Kadenz
- hosts/+shared/: offene Punkte -> Issues #1-#12 im management-Projekt
  (IDs bleiben in den Titeln), Dateien halten Bestand + Historie
- README: Framework, Board/status-Labels (WIP-Limit 2), Topologie

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PKhFj1S3UdD6xL2fbWPeYj
2026-08-01 12:00:00 +00:00
Thore CimbalandClaude Fable 5 77a9a94a7f labnet: LABNET-01 GELOEST - drei gestapelte Ursachen dokumentiert, git.lab vom Handy erreichbar
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PKhFj1S3UdD6xL2fbWPeYj
2026-08-01 12:00:00 +00:00
Thore CimbalandClaude Fable 5 777f8c375f labnet: LABNET-01 Durchbruch - Port-Konflikt mit FritzOS-WireGuard, Tunnel steht auf 51840
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PKhFj1S3UdD6xL2fbWPeYj
2026-08-01 12:00:00 +00:00
Thore CimbalandClaude Fable 5 0b6060339e labnet: DS-Lite ausgeschlossen (Dualstack+feste IPs); cfgmon-03 nachgelagert (Firewall-Lage abweichend)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PKhFj1S3UdD6xL2fbWPeYj
2026-08-01 12:00:00 +00:00
Thore CimbalandClaude Fable 5 666aa9004a shared: LABNET-01 - WireGuard-Roadwarrior ins Lab kaputt (blockiert gitops#48)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PKhFj1S3UdD6xL2fbWPeYj
2026-08-01 12:00:00 +00:00
Thore CimbalandClaude Sonnet 5 15396d53e8 matrix: inventarisieren, MATRIX-01/02 verifiziert erledigt, MATRIX-04 neu
MATRIX-01 (Mail-Absender-Frage): per Config verifiziert, dass weder Synapse
noch MAS Mail versenden - kein Konfigurationsblock in den deployten Werten.
MATRIX-02: Korrektur einer falschen Annahme - "k3s-Host (10.0.0.2)" und
"matrix" sind dieselbe Maschine, nicht zwei getrennte. Remote-Write nutzt
bereits die private IP. MATRIX-04 neu: Host-Level Pre-Update-Benachrichtigung
(Issue #24). Cross-Referenzen in zone-axion1337.md (ZONE-02 entblockt) und
cfgmon.md (CFGMON-03-Update, neues CFGMON-08 fuer die Gitea-Runner-Standortfrage)
aktualisiert.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-30 12:00:00 +00:00
Thore CimbalandClaude Opus 5 8e98a39447 Backlogs zentral strukturieren
Bisher lag der Backlog als BACKLOG.md in threadnet-operating und damit
in einem Repo, das nur einen Stack auf einem Host beschreibt. Da die
Arbeit inzwischen mehrere Hosts umfasst, hier ein File pro Host plus
shared/ fuer Themen, die sich nicht pro Host trennen lassen.

Uebernommen und auf die Hosts verteilt:
- CFGMON: Cert-Erneuerung inkl. IPv6-Firewall, nicht versionierter
  Portainer-Stack (traefik/gitea/cadvisor), offener Remote-Write-
  Receiver, Grafana-API-Credentials; dazu drei erledigte Punkte von
  heute als Historie
- game: Host von CFGMON aus nicht erreichbar, 2 Targets down
- matrix: Mailversand klaeren, bevor die Zone gehaertet wird
- k3s: pusht auf den offenen Receiver, liegt aber schon im privaten Netz
- shared/zone-axion1337: DNS-Bereinigung und Apex-DMARC-Policy

Konventionen in README.md, Vorlage in TEMPLATE.md. IDs sind pro File
fortlaufend und werden nicht wiederverwendet. Praefix fuer DNS-Themen
ist ZONE-, nicht DNS-, weil DNS-01 der Name eines ACME-Challenge-Typs
ist und hier laufend als Fachbegriff vorkommt.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-30 12:00:00 +00:00