apiVersion: helm.toolkit.fluxcd.io/v2 kind: HelmRelease metadata: name: matrix-stack namespace: matrix spec: # Shortened from 5m to match production-apps Kustomization's 1m interval - narrows the # window between coturn (Kustomization-only, no Helm indirection) and synapse-main # (behind this HelmRelease) picking up a rotated TURN secret after Issue #38's # automated-rotation PR gets merged. Self-heals either way, just faster now. interval: 1m chart: spec: chart: matrix-stack version: "26.4.0" sourceRef: kind: HelmRepository name: element-ess-oci namespace: flux-system # NEU: Hier zieht Flux deine Puzzleteile zusammen valuesFrom: - kind: ConfigMap name: ess-synapse-custom valuesKey: values.yaml - kind: ConfigMap name: ess-element-custom valuesKey: values.yaml - kind: Secret name: ess-mas-values-secret valuesKey: values.yaml - kind: Secret name: synapse-turn-secret valuesKey: values.yaml values: # Top-Level: serverName – das ist dein Matrix-Homeserver-Name serverName: axion1337.chat # Cert-Manager für automatische Zertifikatsgenerierung certManager: clusterIssuer: letsencrypt-prod # Interner Postgres an (default ist eh true, hier nur zur Klarheit) postgres: enabled: true # Synapse – API auf matrix.axion1337.chat synapse: enabled: true ingress: host: matrix.axion1337.chat additional: oembed: config: | oembed_enabled: true # Matrix Authentication Service – braucht eine Subdomain matrixAuthenticationService: enabled: true ingress: host: account.axion1337.chat # Matrix RTC (Element Call) – braucht auch eine Subdomain matrixRTC: enabled: true ingress: host: mrtc.axion1337.chat # Chart default (20Mi request+limit) OOM-killed the authorisation service after # ~74 days of uptime (2026-07-28) - too tight for a long-running Go service. resources: requests: memory: 64Mi cpu: 50m limits: memory: 128Mi # Element Web elementWeb: enabled: true image: registry: rohana.axion1337.de repository: sorb/threadnet-web # v0.6.0-rc.2 = Anschluss an Element Web v1.12.26 (ADR-0022). Ein echter # Merge-Commit statt Cherry-Picks; die Fork-Patches mussten umziehen, # weil Upstream MImageBody.tsx geloescht und den Raumlisten-Inhalt nach # RoomListItemContent ausgelagert hat. Betroffen sind genau die zwei # Stellen, die die Abnahme pruefen muss: die ClamAV-Fehlermeldung im # Bild-Pfad (ImageBodyViewModel.computeErrorLabel) und die # Call-Teilnehmerliste in der Raumliste. # Am 19.08. ausgerollt und nach wenigen Minuten zurueckgenommen: die # Raumliste stuerzte bei jedem Eintrag ab (react-soft-crash), weil in # RoomListItemViewModel.ts eine getValue-Zeile auf den von Upstream # entfernten Labs-Schalter feature_room_list_sections stehenblieb - # Sektionen laufen dort inzwischen ueber RoomList.showSections. Eine # Leiche aus der Merge-Aufloesung, die kein Build fangen konnte: # getValue nimmt einen String und wirft erst zur Laufzeit. # Kommt nach dem Fix als rc.3 zurueck. NICHT wieder anheben ohne # geladene Raumliste im Browser. # v0.5.4 = Sender-Verifikation (threadnet-call fee9866): auf Safari # uebersprang LiveKit den Track-Tausch stumm (sender?.replaceTrack), # das rohe Mikro blieb auf der Leitung. Der Fork prueft und erzwingt # den Tausch jetzt; die Konsole weist den Sendepfad aus. # v0.5.3 = KI-Geraeuschunterdrueckung freigeschaltet (threadnet-call # e3f8a85): Abnahme im Call zu zweit bestanden 2026-08-17. Checkbox + # Regler in den Call-Einstellungen (Audio-Reiter). Rueckhebel bei # Regression: Feature-Tor im Fork schliessen, kein Deployment-Revert. # v0.5.2 = KI-Filter-Anbindung Weg B (threadnet-call df4e5ee): Filter # haengt sich NACH der Publikation an den Mikrofon-Track, eigener # AudioContext nur dort - kein webAudioMix, kein processor-Schluessel in # den Capture-Defaults in irgendeinem Zustand. Tor geschlossen: fuer # alle Nutzer verhaltensgleich mit v0.5.1; Test-Client per zwei # localStorage-Schluesseln. Tor-Oeffnung erst nach Abnahme im Call. # v0.5.1 = Entmuten-Vorfall aus v0.5.0 behoben (threadnet-call dcc8643): # Aus-Pfad der KI-Geraeuschunterdrueckung wieder identisch mit Upstream # (kein processor-Schluessel), Feature hart stillgelegt bis zur # webAudioMix-Entscheidung - neutralisiert auch Clients mit noch # aktivierter Einstellung im localStorage. Regressionstests decken beide # Faelle ab. Abnahme: Call zu zweit nach dem Rollout. # Historie 2026-08-16: v0.5.0 brach das Entmuten beidseitig und wurde v0.5.0 brach das Entmuten - es wurde nie ein # Audio-Track veroeffentlicht (SFU-Log: kein einziges "published"). Erstes # Produktivimage mit dem KI-Filter im Audio-Pfad; v0.4.3 (embedded .7) ist # der letzte Stand, mit dem Calls nachweislich liefen (09.-11.08.). # Ursache offen - siehe #0054. NICHT wieder anheben ohne Call-Test zu zweit. # v0.5.0 = KI-Geraeuschunterdrueckung im Call-Widget (ADR-0018): erste # Funktionserweiterung seit dem Rebrand, daher Minor statt Patch. Das # Image traegt jetzt 23 MB Modell-Assets unter # /widgets/element-call/assets/dfn3/ - sie werden erst beim Einschalten # des Filters geladen, nicht beim Seitenaufruf. # v0.4.0 = Rebrand sichtbar: zentrierte Icons, Markenfarbe #ed4f4c, # About-Attribution unter der Client-Version (ThreadNet-Web#10). # Die Linie beginnt bei v0.3.0, dem ersten kanonischen CI-Build aus # apps/web/Dockerfile - er loeste die Derivat-Images ab, deren # Entrypoint ohne Exec-Bit /config.json still brach (ThreadNet-Web#8). tag: v0.5.4 ingress: host: axion1337.chat # Element Admin elementAdmin: enabled: true ingress: host: admin.axion1337.chat # Well-Known auf der Apex-Domain (axion1337.chat/.well-known/matrix/*) # Aktiviert – notwendig für MatrixRTC-Discovery wellKnownDelegation: enabled: true ingress: className: "none" # Deaktiviert den Chart-Ingress, wir erstellen einen eigenen