Erstumsetzung: OAMC Turnierauswertung (AP 0–7, 9)

* Datenmodell + Alembic-Initialmigration (Plan §4), Seed Saison 2026
* Wertungs-Engine (Plan §3.3), regelbasiert je Kategorie/Saison
  - Abnahmetest gegen die Ergebnisliste 2026-05-31
* Meisterschaftsberechnung mit Streichresultaten + Tie-Break
  (PLATZHALTER-Punktetabelle, O-1 offen)
* Ingest-API (idempotent, dry_run) inkl. Excel-Leser und Fahrer-Matching/Merge
* Zeitmessungs-Endpoint (Batch, idempotent, unzugeordnet/unplausibel) + SSE-Anzeige
  - Mess-Pi-Client bewusst NICHT enthalten (docs/zeitmessung-endpoint.md)
* Frontend: öffentliche Seiten + internes Backend (Jinja2/HTMX, kein Build)
* Auslieferung: Docker (multi-arch) + docker-compose sowie Debian-Paket/APT-Repo
* 57 Tests grün gegen echte PostgreSQL-Testdatenbank

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
linus
2026-09-05 18:49:00 +02:00
co-authored by Claude Sonnet 5
commit 03f6fdb0d9
115 changed files with 8041 additions and 0 deletions
+35
View File
@@ -0,0 +1,35 @@
# APT-Repository für `oamc-turnier`
Kleines, signiertes Ein-Paket-Repo (für den Vereins-Pi / eigenen Server). Nutzt
`reprepro`.
## Einmalig: Repo anlegen
```sh
sudo apt install reprepro devscripts build-essential debhelper
export GNUPGHOME=~/.gnupg
gpg --full-generate-key # Repo-Signierschlüssel, z. B. "OAMC APT <apt@oamc.de>"
gpg --armor --export apt@oamc.de > packaging/apt-repo/oamc-archive-keyring.asc
mkdir -p /srv/apt/oamc/conf
cp packaging/apt-repo/distributions /srv/apt/oamc/conf/distributions # SignWith anpassen
```
## Paket bauen und einspielen
```sh
./packaging/apt-repo/build-deb.sh # erzeugt ../oamc-turnier_*.deb
reprepro -b /srv/apt/oamc includedeb trixie ../oamc-turnier_*.deb
```
`/srv/apt/oamc` per nginx/Apache unter z. B. `https://apt.oamc.de` ausliefern.
## Auf dem Zielrechner
```sh
curl -fsSL https://apt.oamc.de/oamc-archive-keyring.asc \
| sudo tee /etc/apt/keyrings/oamc.asc >/dev/null
echo "deb [signed-by=/etc/apt/keyrings/oamc.asc] https://apt.oamc.de trixie main" \
| sudo tee /etc/apt/sources.list.d/oamc.list
sudo apt update && sudo apt install oamc-turnier
```
+19
View File
@@ -0,0 +1,19 @@
#!/bin/sh
# Baut das .deb aus dem Projektwurzelverzeichnis.
# Voraussetzungen: dpkg-dev, debhelper (>= 13), python3-venv, Internet (pip).
set -eu
WURZEL="$(cd "$(dirname "$0")/../.." && pwd)"
cd "$WURZEL"
command -v dpkg-buildpackage >/dev/null || {
echo "dpkg-dev / debhelper fehlen: sudo apt install build-essential debhelper devscripts"
exit 1
}
# -us -uc: unsigniert (Signatur macht reprepro beim includedeb)
dpkg-buildpackage -b -us -uc
echo
echo "Fertig. Artefakte:"
ls -1 ../oamc-turnier_*.deb 2>/dev/null || true
+8
View File
@@ -0,0 +1,8 @@
Origin: OAMC Reinheim
Label: OAMC Turnierauswertung
Suite: stable
Codename: trixie
Architectures: arm64 amd64 source
Components: main
Description: OAMC Turnierauswertung - internes APT-Repo
SignWith: apt@oamc.de