Architektur

Handplay — TSV Sieverstedt II Kickbase

Ein Container, eine Datenbank, ein Mail-Dienst. Die Spiellogik steckt in Postgres-Funktionen statt in Node — deshalb kommen sich gleichzeitige Seitenaufrufe beim Abrechnen des Marktes nicht in die Quere.

Architektur der Handplay-App Architekturdiagramm: Manager rufen im Browser die Next.js-App auf, die als Docker-Container auf dem eigenen Host läuft. Die App prüft Sitzungen bei Supabase Auth und liest Daten mit dem Anon-Key unter Row Level Security aus Postgres. Beim Aufruf von Übersicht und Transfermarkt startet tickMarket, das mit Service-Role-Rechten abgelaufene Angebote in Postgres-Funktionen abrechnet und Gewinner per Resend benachrichtigt. Deployt wird über einen selbst gehosteten GitHub-Actions-Runner auf demselben Host. BROWSER EIGENER HOST · DOCKER EXTERNE DIENSTE DEPLOY CADDY :443 SESSION ANON · RLS ON READ SERVICE ROLE MAIL Manager GitHub Actions self-hosted Runner Next.js 16 :3010 tickMarket() läuft beim Seitenaufruf Supabase Auth @supabase/ssr Supabase Postgres 16 Tabellen mit RLS Marktabrechnung in RPC-Funktionen Resend no-op ohne API-Key LEGENDE FOKUS APP-CODE FREMDDIENST NUTZER DEPLOY API-AUFRUF

Kein Scheduler: Der Markt wird abgerechnet, wenn jemand hinsieht. Freitag 16:00 bis Montag 00:00 ist er eingefroren — am Montag holt der erste Seitenaufruf alles nach.