No description
Find a file
Daniel Michelberger 0ae0840c29 fix: Deployment-Build durch jsdom-Downgrade auf 29 reparieren
npm ci brach beim Deployment mit EBADENGINE ab: jsdom 30 verlangt
^22.22.2 || ^24.15.0 || >=26.0.0, Nixpacks liefert aber Node 24.10.0.
24.10 ist aelter als 24.15 und faellt damit durch; zusammen mit
engine-strict=true in .npmrc bricht die Installation hart ab.

Anders als bei frueheren Node-Problemen liegt es nicht an unserer eigenen
engines-Angabe (^20.19 || ^22.12 || >=24) — die ist erfuellt. Die
Anforderung kommt allein aus jsdom, und zwar erst seit Version 30; jsdom 29
verlangt nur >=24.0.0. Ein NIXPACKS_NODE_VERSION haette nicht geholfen, weil
Nixpacks nur Major-Versionen aufloest und damit ohnehin bei 24.10 landet.

jsdom ist eine devDependency und wird ausschliesslich als Testumgebung fuer
Vitest genutzt (vite.config.ts). Fuer den Produktionsbuild ist sie
irrelevant, wird aber mitinstalliert, weil Nixpacks NPM_CONFIG_PRODUCTION
auf false setzt.

Verifiziert: npm ci laeuft in einem node:24.10-slim-Container durch, also
auf exakt der Version, an der das Deployment gescheitert ist. Alle 19 Tests
in src/lib/gpx.test.ts bestehen unter jsdom 29.1.1, npm run build erzeugt
das build-Verzeichnis.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-14 15:59:31 +02:00
backend chore: PocketBase auf 0.39.11 aktualisieren 2026-08-14 15:52:00 +02:00
docs/superpowers docs: Plan-Korrekturen aus der Umsetzung nachziehen 2026-08-06 19:30:44 +02:00
frontend fix: Deployment-Build durch jsdom-Downgrade auf 29 reparieren 2026-08-14 15:59:31 +02:00
.gitignore docs: Plan-Korrekturen aus der Umsetzung nachziehen 2026-08-06 19:30:44 +02:00
CLAUDE.md fix: Deployment reparieren — adapter-node und Node-Anforderung festschreiben 2026-08-06 14:52:00 +02:00
README.md chore: Repo-Struktur mit frontend/ und backend/ aufsetzen 2026-08-06 13:16:43 +02:00
UML_basic.png chore: Repo-Struktur mit frontend/ und backend/ aufsetzen 2026-08-06 13:16:43 +02:00

stammtisch-hersbruck.de

Zeitmessung und Verwaltung für Läufe des Stammtisch Hersbruck.

Das Repository enthält beide Teile der Anwendung:

Verzeichnis Inhalt
frontend/ SvelteKit-5-Anwendung (Svelte 5 Runes, Tailwind 4)
backend/ PocketBase-Instanz — Dockerfile, Schema-Migrationen

Schnellstart

Frontend gegen die produktive Instanz:

cd frontend
cp .env.example .env      # Werte eintragen
npm ci
npm run dev

Die App läuft dann auf http://stammtisch-hersbruck.de.localhost:31337

Backend lokal (optional — der Default zeigt auf die produktive Instanz):

cd backend
cp .env.example .env      # Werte eintragen
docker compose up -d --build

Danach in frontend/.env PUBLIC_PB_URL=http://127.0.0.1:8090 setzen.

Details stehen in backend/README.md.

PocketBase

Produktiv: https://api.stammtisch-hersbruck.de

Welche Instanz das Frontend anspricht, entscheidet PUBLIC_PB_URL in frontend/.env. Das Schema ist als Migration in backend/pb_migrations/ versioniert.