judolas.xyz

Changelog

Was sich am Hub geändert hat.

Jeder Eintrag ist verifiziert, nicht geplant — inklusive der Stellen, wo etwas korrigiert werden musste.

  1. Forgejo wieder abgebaut, Whiteboard in Chat aufgegangen

    Infrastructure

    Forgejo (git.judolas.xyz) wurde ungenutzt — komplett zurückgebaut. Whiteboard/Watchparty haben keine eigene Bento-Karte mehr, sind Teil der Chat-Showcase.

    • Docker-Container + Image + Datenverzeichnis (/opt/forgejo) entfernt, Caddy-Block für git.judolas.xyz raus (validiert vor Aktivierung, wie immer), git.judolas.xyz antwortet jetzt korrekt gar nicht mehr.
    • Git-Eintrag aus der Service-Registry, /projects/git-Showcase und Preview-Screenshot entfernt.
    • Whiteboard-Karte entfernt (war eh Teil desselben Matrix-Servers) — Chat-Tagline und /projects/chat erweitert, dazu ein neuer unverlinkter Activity-Block: letzte Commits von judolas-matrix-server (privates Repo, bewusst nirgends verlinkt, da Besucher es sowieso nicht öffnen können).
    • Nebenbei behoben: unhandled promise rejection im Frame-Preloader (Promise.all → Promise.allSettled), sichtbar geworden durchs Next-Dev-Overlay beim Testen der neuen Activity-Sektion.
  2. judolas-matrix-server auf GitHub, GitHub-Widget auf ein Repo eingeschränkt

    Content

    Auf Nutzerwunsch: Hub zeigt nur noch N0xZz/vibe-household-app; Musikbot, Whiteboard/Watchparty und das Element+Matrix-Setup als eigenes, bereinigtes Repo gepusht.

    • lib/github.ts liest jetzt genau ein konfiguriertes Repo (owner/name), nicht mehr die zuletzt gepushten Repos einer ganzen Liste.
    • Vor dem Push: vollständiger Secrets-Audit von /opt/matrix-server. Fund: HANDOVER.md (VPS-Root-Passwort, Synapse-Admin-Token im Klartext) war im lokalen Repo getrackt — bleibt draußen, ebenso Signing-Key, homeserver.yaml, alle Bridge-Registration-Dateien, Cookies, Backups.
    • Zwei hartkodierte Secrets in sonst sauberem Code gefunden (POSTGRES_PASSWORD, LIVEKIT_SECRET in docker-compose.yml und jwt_auth_service.py) und durch Env-Var-Referenzen ersetzt, echte Werte nie committed.
    • Neues privates Repo N0xZz/judolas-matrix-server: frische Git-History (nicht die alte mit den Secrets drin), 22 kuratierte Dateien, README dokumentiert explizit was fehlt und warum.
  3. GitHub-Projekte statt Forgejo-Activity

    Fix

    Das Activity-Widget zeigte die falsche Quelle — jetzt echte GitHub-Repos statt interner Forgejo-Pushes.

    • lib/github.ts: öffentliche Repos von github.com/judolas, sortiert nach letztem Push.
    • Optionaler GITHUB_TOKEN schaltet auf den authenticated /user/repos-Endpunkt um und zeigt dann auch private Repos.
    • Ungenutzte Forgejo-Activity-Anbindung entfernt: Token revoked, FORGEJO_*-Env-Vars aus dem Hub-Service gestrichen.
  4. Diese Seite

    Feature

    Ein sichtbarer, ehrlicher Verlauf aller Änderungen am Hub — kein Marketing-Text, jeder Eintrag verifiziert.

    • /changelog als eigene Route, verlinkt aus der Haupt-Navigation.
  5. Forgejo unter git.judolas.xyz

    Infrastructure

    Self-hosted Git-Server — kein Bestand vorher gefunden, sauber neu aufgesetzt.

    • Vor dem Aufsetzen komplett geprüft: kein vorhandener Forgejo/Gitea-Container, keine Reste — echte Lücke.
    • Forgejo 16, SQLite-Backend, öffentliche Registrierung gesperrt (nur Admin legt Accounts an).
    • End-to-End verifiziert: echtes Repo per API angelegt, geklont, committed, gepusht, mit frischem Klon die Persistenz bestätigt — danach Test-Repo und Tokens wieder entfernt.
    • Hub-Inhalt korrigiert: ursprüngliche Ankündigung von CI/Actions-Runnern entfernt, weil nie aufgesetzt — keine unbelegten Behauptungen.
  6. Household-Fehlstart korrigiert

    Fix

    Eine komplette Next.js/SQLite-App gebaut und deployed — bevor klar wurde, dass Vibe Household schon existierte.

    • Neue App zurückgebaut: systemd-Service gestoppt und entfernt, /opt-Verzeichnis gelöscht.
    • Echte Vibe-Household-App (Expo/React Native Web, Supabase-Backend) unter /var/www/household gefunden — war nie in Caddy verdrahtet.
    • Caddy-Block von reverse_proxy auf file_server mit SPA-Fallback umgebaut (Caddy 2.6.2 hat kein try_files), Cache-Header für gehashte Expo-Assets ergänzt.
    • Hub-Inhalt (Tech-Stack, Beschreibung) korrigiert, statt an der ursprünglich erfundenen Next.js/tRPC/Postgres-Beschreibung festzuhalten.
  7. Echte Vorschau-Screenshots

    Content

    Die Displacement-Preview-Cards zeigten Testmuster (SMPTE-Farbbalken) — jetzt echte Screenshots der laufenden Services.

    • Chat-, Household- und Git-Karten zeigen live eingefangene Screenshots der jeweils echten Anwendung.
    • Dabei einen echten Shader-Bug gefunden und live behoben: `sample` ist ein reserviertes Wort in GLSL ES, Vertex-Shader kompilierte still nicht.
  8. Live-Deploy auf judolas.xyz

    Infrastructure

    Next.js Standalone-Build, systemd-Service, Caddy-Routing — ohne die bestehende Matrix-Federation zu brechen.

    • Vor jeder Caddyfile-Änderung: live gelesen statt angenommen. Die judolas.xyz-Apex-Domain trug bereits `.well-known/matrix/*`-Federation-Delegation — nur der Catch-all-Handler wurde ersetzt, alles andere blieb unberührt.
    • Node 18 → 22 LTS auf dem VPS aktualisiert (Next 16 braucht ≥20), node:sqlite statt better-sqlite3 durchgängig genutzt, um plattformübergreifende Native-Module-Probleme beim Windows-Build/Linux-Deploy von vornherein auszuschließen.
    • Backup vor jeder Caddyfile-Aktivierung, `caddy validate` vor jedem Restart.
  9. Hub-Grundgerüst

    Feature

    Next.js 16 App Router, Bento-Grid-Dashboard, interaktive 3D-Previews, Scroll-Scrubbing-Showcases.

    • DisplacementViewer: React-Three-Fiber-Shader, Luminanz-getriebenes Vertex-Displacement + Pointer-Parallax + Fresnel-Glow, IntersectionObserver-gated, mit Error-Boundary + Suspense.
    • ScrollCraftCanvas: Canvas-Frame-Scrubbing über GSAP ScrollTrigger, gebündelte Frame-Preloads statt einem Promise.all über hunderte Bilder.
    • shadcn-Pattern UI-Primitives (Button, Card, Badge), Deep-Dark-Theme über CSS-Custom-Properties.