Matchmaking-, Liga- und Turnier-App für Büro-Tischtennis.
Go + templ + HTMX, Postgres, ein Container. Läuft in Docker Compose, Kubernetes und Azure Container Apps aus demselben Image.
| Startseite | Turnier | Profil |
|---|---|---|
![]() |
![]() |
![]() |
- Startseite — was gerade läuft und dich betrifft, was auf deine Bestätigung wartet, und das Formular für ein Ergebnis. In dieser Reihenfolge.
- Turnier — Tabelle und Spielplan auf einer Seite, mit Tischseite und Eintragen-Knopf für die eigenen Paarungen.
- Profil — TTR, wie sie zustande kam, und die Matches dahinter.
Jede Seite einzeln, samt Kiosk, Aushang und Handy-Ansicht:
docs/bildschirme.md. Die Bilder stammen aus dem
Demo-Datenbestand, den task seed anlegt.
Im Aufbau. Aktueller Meilenstein ist der MVP nach docs/mvp-plan.md: Ergebnisse
erfassen, vom Gegner bestätigen lassen, TTR berechnen, Rangliste anzeigen.
Liga-, Turnier- und Buchungsmodus kommen später.
Voraussetzungen: Task, Docker und die
Dagger-CLI. Beim ersten Aufruf einer
Dagger-Task einmalig task dagger:develop ausführen — das erzeugt die
generierten Teile des Pipeline-Moduls.
task up # Compose-Umgebung starten (App + Postgres)
task seed # Demo-Spieler und -Ergebnisse, damit die Seiten nicht leer sind
task run # App lokal gegen die Compose-Datenbank, ohne Container
task ci # lint, test, build, verify — identisch zur Pipeline
task office:setup # .env für einen Abend an der Platte
task office:up # starten, im Netz erreichbarDas Büro spielt seit dem 13.09.2026 auf der Instanz im Cluster — seit dem
28.09.2026 auf homerun2-dev2
(https://schmetterpause.homerun2-dev2.sthings-vsphere.labul.sva.de), davor auf
homerun2-test1 —, mit nächtlichem Backup. office:setup und office:up sind
der Weg für einen Abend mit eigenem Laptop — mit eigener Rangliste, siehe
Turnier vor Ort und
Spieldaten sichern und umziehen.
task up startet das veröffentlichte Image aus GHCR, nicht eines aus dem
Arbeitsverzeichnis — dasselbe Artefakt, das im Cluster läuft. Für den eigenen
Stand gibt es task run (schnell, ohne Container) und task up:local (baut das
Image mit Dagger und startet Compose damit).
Alle Befehle laufen über Task. Die eigentliche
Pipeline-Logik steckt in Dagger und läuft lokal wie in der
CI gleich — task ci ist kein Näherungswert, sondern derselbe Code.
task --list zeigt alle verfügbaren Tasks.
Alles aus docs/ steht als Website unter
https://stuttgart-things.github.io/schmetterpause/ — mit Navigation und
Suche, und damit die bessere Adresse für alles, was jemand im Stehen oder auf
dem Handy liest. Diese Datei bleibt der Einstieg für alle, die das Repository
ohnehin ausgecheckt haben.
docs/bildschirme.md— jede Seite der App in einem Bild, am Demo-Datenbestand.CLAUDE.md— Invarianten, fachliche Begriffe, Konventionen. Vor Änderungen lesen.docs/mvp-plan.md— Scope, Datenmodell, Arbeitspakete, Definition of Done.docs/adr/— Architekturentscheidungen samt verworfener Alternativen. Der Index unterdocs/adr/index.mdwird generiert:task docs:index.docs/turnier-vor-ort.md— ein Abend an der Platte mit einem Laptop für alle.
Eine Änderung, die einem ADR widerspricht, braucht ein neues ADR mit
supersedes-Verweis.
Schmetterball plus Pause. Der Name entstand aus einer Abstimmung im Büro und gilt als gesetzt — er steckt im Modulpfad, im Image-Namen und im Browser-Titel.


