Backend
Das Backend ist ein Express-Service mit Prisma, PostgreSQL, Steam-Integration, Wallet-Logik und Hintergrundjobs.
Startverhalten
Beim Container-Start liest das Backend Runtime-Secrets aus /run/secrets, baut die Datenbankverbindung auf und führt automatisch prisma migrate deploy aus.
Lokal startet es mit:
npm run dev
Dieser Befehl läuft im Backend-Container und wird vom lokalen Compose-Setup gestartet.
Tests
Backend-Tests werden im laufenden Backend-Container mit geladener Runtime-Env ausgeführt:
docker compose -f docker-compose.yml -f docker-compose.local.yml exec backend sh -lc '. /usr/local/bin/load-runtime-env.sh && npm test'
Hintergrundjobs
Im Backend-Prozess starten unter anderem:
- Steam-Trade-Monitor
- Top-Trader-Reward-Job
- Stripe-Fee-Matrix-Refresh
- Market-Price-Job-Cleanup
Nicht jeder Job braucht einen externen Cronjob. Details stehen in den jeweiligen Operations- und Product-Logic-Seiten.
Admin-Rolle
Admin-Rechte werden über User.role gesteuert. Standard ist user; Admins haben role = admin.
Admin setzen, zum Beispiel per PSQL im Datenbank-Container:
UPDATE "User" SET role = 'admin' WHERE "steamId" = '7656119...';
Alternativ kann das Feld in Prisma Studio geändert werden. Admin-Rechte sollten nur gezielt vergeben werden, weil Admins interne Debug- und Finanzdaten sehen können.