Table of Contents
- aXion1337.Chat – Task List & Meilensteine
- 🏷️ Versionierung (seit 2026-07-28)
- 📊 Status Summary (Quick View)
- ✅ Abgeschlossene Aufgaben (Chronologisch)
- Phase 1: Basis-Setup
- Phase 2: Core Features
- Phase 3: WebRTC & Medienübertragung
- Phase 4: Monitoring & Observability
- Phase 5: Identity Provider (Authentik)
- Phase 6: Dokumentation
- 🗓️ Update-Log 2026-07-27 bis 2026-07-30
- 🔒 Security Hardening (Host & Cluster Level)
- 🎯 Meilensteine (Milestones)
- 📝 Notes & Decision Points
- 🔗 Related Documentation
aXion1337.Chat – Task List & Meilensteine
Last Updated: 2026-07-30
Statusübersicht: [✅ 13 Abgeschlossen] [🔄 0 In Progress] [📋 8+ Pending] [🔒 10 Security]
Ab 2026-07-28 in Gitea-Issues gepflegt statt hier — diese Seite ist die historische Chronik + ein Status-Überblick, aber für den aktuellen Backlog-Stand sind die Issues die eine Quelle der Wahrheit (nicht mehr doppelt pflegen).
🏷️ Versionierung (seit 2026-07-28)
Das Repo nutzt SemVer (vMAJOR.MINOR.PATCH) statt der bisherigen unregelmäßigen
m1-m7-Meilenstein-Tags. Pragmatisch als Änderungsgrößen-Konvention genutzt, nicht als
strikter Kompatibilitätsvertrag - Flux verfolgt weiterhin direkt den main-Branch, Tags sind
reine Historie/Dokumentation, kein Deployment-Mechanismus.
- MINOR = neue Fähigkeit/Feature landet (z.B. neues Backup-System, neue NetworkPolicy)
- PATCH = Fixes, Tuning, Doku-only, Config-Korrekturen an bereits Bestehendem
- Start bei v0.1.0, nicht v1.0.0 - der Stack läuft zwar live, ist aber nach eigener Einschätzung noch nicht "fertig" (großer offener Security-/Infra-Backlog), 0.x signalisiert das korrekt. v1.0.0 ist für einen späteren, bewusst gesetzten Meilenstein reserviert.
Volle Historie: Releases.
📊 Status Summary (Quick View)
| Kategorie | Count | Status | Details |
|---|---|---|---|
| Completed | 13 | ✅ Done | K3S, Flux, ESS, Themes, Desktop, Monitoring, TURN, Authentik (Deploy+Enrollment/Recovery/2FA), Firewall, SSH, coturn Fix, Element Call Fork, NetworkPolicies, Draupnir, Content Scanner, unattended-upgrades |
| In Progress | 0 | 🔄 — | — |
| Backlog | 8+ | 📋 Pending | siehe Gitea Issues - DB Backups/Postgres-Migration bereits erledigt (Issue #6/#15, siehe Update-Log), verbleibend v.a. Security-Hardening (#25-#30) |
| Security Tasks | 6 offen | 🔒 Pending | K3s API Hardening, auditd, Kernel hardening, Lynis, CrowdSec, Falco |
✅ Abgeschlossene Aufgaben (Chronologisch)
Phase 1: Basis-Setup
-
K3S Cluster aufsetzen – Single-Node auf Hetzner Cloud (49.13.132.245)
- Commit:
initial-setup(vor Projekt) - Status: ✅ Läuft
- Commit:
-
Flux CD Installation
- SOPS + age Encryption
- GitOps Repository konfigurieren
- Commit:
setup-flux(vor Projekt) - Status: ✅ Läuft
-
Element Server Suite v26.4.0 Deployment
- Synapse Homeserver (
matrix.axion1337.chat) - Matrix Authentication Service (
account.axion1337.chat) - Element Web (
axion1337.chat) - Element Admin (
admin.axion1337.chat) - MatrixRTC/Element Call (
mrtc.axion1337.chat) - Commit:
deploy-ess-matrix-stack - Status: ✅ Running
- Synapse Homeserver (
Phase 2: Core Features
-
7 Custom Element Web Themes
- aXion1337 Dark, Deep Purple, Discord Dark, Electric Blue, Everforest, Gruvbox, Wal
- Alphabetisch sortiert
- Commit:
add-custom-element-themes - Status: ✅ Deployed
-
Element Desktop Setup Scripts (Windows/macOS/Linux)
- Auto-Download + Install + Config
- Hosted auf
axion1337.chat/docs/setup/ - Commits:
add-element-desktop-setup-scripts,fix-element-setup-script-hosting - Status: ✅ Deployed
-
Room Policies
- Message Retention (1d–1y lifecycle)
- Room Publication Rules (allow all)
- Auto-Join Rooms für Onboarding
- Commit:
add-synapse-retention-publication-autojoin - Status: ✅ Deployed
Phase 3: WebRTC & Medienübertragung
- TURN Server (coturn) für Video-Calls
- Domain:
turn.axion1337.chat - HMAC-Auth mit Shared Secret
- Ports: 3478/udp, 3478/tcp, 5349/tcp, 49152-65535/udp
- Commit:
implement-turn-server-coturn-for-webrtc-video-calls - Status: ✅ Deployed
- Domain:
Phase 4: Monitoring & Observability
- Monitoring Stack Integration
- Alloy (Grafana Agent) als Collector
- Remote Write zu Selendis (10.0.0.3:9090 Prometheus, :3100 Loki)
- kube-state-metrics, node-exporter DaemonSet
- Commits:
integrate-monitoring-alloy-prometheus-loki,fix-prometheus-remote-write-docker - Status: ✅ Deployed
Phase 5: Identity Provider (Authentik)
-
Authentik Stage 1 Deployment
- HelmRelease v2026.x in
authentiknamespace, Embedded PostgreSQL, Cert-Manager für TLS - Commit:
deploy-authentik-as-identity-provider-for-matrix-stage-1 - Status: ✅ Deployed
- HelmRelease v2026.x in
-
Authentik Stage 2 – MAS Integration (fertiggestellt 2026-05-15, Commit
cdfbf7d)- OIDC Provider + Application in Authentik,
upstream_oauth2_configinmas-secret.yaml - Status: ✅ Deployed - siehe Authentik-OIDC.md für die spätere Enrollment/Recovery/2FA-Erweiterung (Issue #7, 2026-07-27) und die OIDC-as-Code-Erfassung (Issue #36, 2026-07-28)
- OIDC Provider + Application in Authentik,
Phase 6: Dokumentation
- Deployment Guides erstellen
- Mittlerweile 7 Markdown-Dateien in
docs/deployment-guides/(chronologisch geordnet) - Commit:
add-comprehensive-deployment-configuration-documentation - Status: ✅ Deployed
- Mittlerweile 7 Markdown-Dateien in
🗓️ Update-Log 2026-07-27 bis 2026-07-30
2026-07-27: Authentik Enrollment/Recovery/2FA (Issue #7 ✅ geschlossen). Der komplett
kaputte matrix-invitation-Enrollment-Flow (fehlende Write/Password/Login-Stages, 16
fehlerhafte validation_policies), der leere matrix-recovery-Flow (Passwort-Reset), sowie
optionales 2FA/Passkey-Self-Service (axion1337.chat/docs/setup/security.html) repariert und
als Authentik Blueprint (apps/authentik/authentik-blueprints.yaml) deklarativ im Repo
erfasst, siehe Authentik-OIDC.md.
2026-07-28: coturn-Crash behoben (kaputte netstat-Liveness-Probe, 88 Tage/36k+ Restarts
eines gesunden Prozesses, jetzt tcpSocket-Probe). Element Call Fork (Issue #8 ✅
geschlossen) umgesetzt und deployed — 1440p/60fps-Defaults, siehe
Element-Customization.md Kapitel 4. Kurzer Live-Incident
(erzwungenes VP9 hat Calls komplett kaputt gemacht, sofort zurückgerollt, ohne Codec-Zwang
funktioniert's - danach H.264 statt VP8 nachgeschärft, live verifiziert).
2026-07-28 (weiter): NetworkPolicies (Issue #10 ✅ geschlossen) — Default-Deny Ingress
für matrix und authentik Namespaces. Zwei kurze Live-Incidents beim Rollout, beide binnen
Minuten gepatcht (Port-Verwechslungen). Nebenbei: matrixRTC-Authorisation-Service OOM-Fix
(20Mi→128Mi), OIDC-Identitäts-Aufräumarbeiten. Restlicher offener Backlog als Gitea-Issues
#11–#31 angelegt (VP9-Retry, ThreadNet-Web-Bug, MAS-Template-Link, WAF, +weitere
Security-/Infra-Punkte) — ab hier gilt Gitea als alleinige Backlog-Quelle.
2026-07-28 (Issues #6, #15, #36-#38, #41): Postgres-/Media-Backups zur Hetzner Storage Box
umgesetzt (Borg, verschlüsselt, dedupliziert, echter Restore-Test bestätigt). OAuth2-Provider/
Application als Authentik Blueprint erfasst (Issue #36). authentik-postgresql NetworkPolicy
geschlossen (Issue #37). TURN-Secret-Dopplung behoben + automatische monatliche Rotation via
CronJob + PR-Workflow (Issue #38, live getestet). Node-/etc/hosts-Workaround für
Gitea-Erreichbarkeit, sauberer Fix als Issue #41 nachgehalten.
2026-07-29: Draupnir (Moderationsbot, Issue #18 ✅ geschlossen) und ClamAV Content Scanner (Issue #19 ✅ geschlossen) deployed und live getestet — Content Scanner zunächst server-seitig (Synapse-Modul, nur unverschlüsselte Räume), dann client-seitig auf verschlüsselte Räume/DMs erweitert (ThreadNet-Web-Patches, inkl. Hostile-Sender-Test). Details: Moderation-Content-Scanning.md. Bekannte Lücke: Electron/ Desktop-Build zieht den Fix nicht automatisch (Issue #44, siehe auch ThreadNet-Web#2).
2026-07-29: Issue #13 (MAS 2FA-Link) geschlossen — live geprüfte OIDC-Discovery zeigt, MAS unterstützt keine 2FA-Deep-Link-Action. Nach ThreadNet-Web#4 verschoben (Client-seitige Lösung statt MAS-Template-Override).
2026-07-29/30: Host-Wartungsbenachrichtigungen (Issue #24 ✅ geschlossen) —
unattended-upgrades war bereits aktiv (nur nie dokumentiert), neu ergänzt: Pre-Update-
Benachrichtigung per Mail (msmtp/IONOS) + Matrix (Thread-Reply), fest um 05:00 Uhr vor dem
06:00-07:00-Update-Fenster. Erster host-lokaler, nicht-GitOps-verwalteter Mechanismus im Repo
(host-config/maintenance-notify/). Details:
Host-Maintenance-Notifications.md.
2026-07-30 bis 2026-08-01 (CI/CD-Umzug ins Lab): Build-CI/CD komplett ins
Homelab-GitLab (git.lab) migriert, nachdem Gitea Actions an vier realen act-Bugs und
einem Webpack-OOM (3,7-GiB-Host) scheiterte. ThreadNet-Web-Pipeline vollautomatisch grün
(Web-Build → Image nach rohana → Desktop-Linux-Pakete), schlankes Trigger-Schema (Pushes
prüfen, v*-Tags releasen). Repo-Topologie neu: git.lab kanonisch für die 5
gespiegelten Repos, Gitea bleibt Push-Mirror + Flux-Quelle + Registry/Issues — direkte
Gitea-Pushes sind tabu. Windows-Build-Strecke aufgebaut und abgeschlossen (eigene On-Demand-VM auf Overmind
aus selbst gebautem dockur/windows-Stand; erster Volldurchlauf grün am 2026-07-31 ~21:50,
Element Setup 1.12.17.exe unsigniert, ThreadNet-Web#5 ✅, Signing/Branding →
ThreadNet-Web#6). Zwischenfall dabei: Overmind-Totalausfall durch e1000e-NIC-Hang
(EEE-Bug, nicht die Build-VM) — EEE-Fix aktiv, Details Backlogs OVERMIND-02. Lab-Container-Registry aktiviert (OVERMIND-01 ✅), Gitea-CI
zurückgebaut (CFGMON-11, drei manuelle Restschritte), threadnet-call-CI grün
(threadnet-call#1, npm bleibt auf rohana), Alerting deploybar vorbereitet (Issue #32).
Host-Inventare: neues hosts/overmind.md im Backlogs-Repo.
🔒 Security Hardening (Host & Cluster Level)
Host OS Layer (Debian)
- Hetzner Cloud Firewall – Default-Deny inbound. Done.
- SSH Hardening – Key-only, Root-Login disabled, Port 2248. Done.
- unattended-upgrades (2026-07-30, Closes Issue #24) — siehe Update-Log oben.
- K3s API Security Hardening → Issue #25
- auditd (File Integrity & Syscall Audit) → Issue #26
- Kernel Hardening (sysctl) → Issue #27
- Lynis Security Baseline → Issue #28
Cluster Layer (K3S / Kubernetes)
🎯 Meilensteine (Milestones)
| Meilenstein | Beschreibung | Status |
|---|---|---|
| M1: Basis-Setup | K3S + Flux + ESS deployed | ✅ Done |
| M2: Core Matrix | Themes, Scripts, Policies | ✅ Done |
| M3: WebRTC & Monitoring | TURN + Alloy/Prometheus/Loki | ✅ Done |
| M4: Identity Provider | Authentik Stage 1+2 + Enrollment/Recovery/2FA | ✅ Done |
| M5: Production-Hardening | DB Backups, NetworkPolicies, Firewall/SSH, unattended-upgrades | ✅ Done (Host-/Cluster-Security-Restposten siehe oben) |
| M6: Advanced Features | Element Call Fork, Content Scanner, Draupnir | ✅ Done |
| M7: Enterprise-Ready | Full compliance (DSGVO), HA setup, Disaster Recovery | 🎯 Future |
📝 Notes & Decision Points
Database: CloudNativePG vs. Hetzner Postgres
- CloudNativePG: Open-source, runs on K3S, full control
- Hetzner Postgres: Managed, backups included, less ops overhead
- Decision: Recommend CloudNativePG for now (cost-effective), migrate to Hetzner later if operational overhead too high
- Noch offen, siehe Issue #9
Federation: Allowlist vs. Closed?
- Allowlist: Default federation with all public servers, can be attacked
- Closed: Only federate with trusted servers (higher security, lower interop)
- Decision: Depends on user intent. For now: allow all, Draupnir für Abuse-Schutz aktiv
🔗 Related Documentation
docs/deployment-guides/README.md– Overviewdocs/deployment-guides/01-turn-server-setup.md– TURNdocs/deployment-guides/02-authentik-identity-provider.md– Authentik (Stage 1+2 + Enrollment/Recovery/2FA)docs/deployment-guides/03-monitoring-integration.md– Monitoringdocs/deployment-guides/04-element-customization.md– Themes, Desktop, Element Call Forkdocs/deployment-guides/05-room-policies.md– Policiesdocs/deployment-guides/06-moderation-content-scanning.md– Draupnir, ClamAV Content Scanningdocs/deployment-guides/07-host-maintenance-notifications.md– Host-Wartungsbenachrichtigungen
Last Updated: 2026-07-30