Image bauen und in die Registry schieben / build (push) Successful in 6s
- ex-grid: minmax(min(460px,100%),1fr) -> keine 460px-Mindestspalte auf dem Handy mehr; Block und X-Button nicht mehr abgeschnitten - Satz-Zeile: Aktionen (Reset/X) rechtsbuendig per flexiblem Spacer; auf sehr schmalen Handys kompaktere Felder (72px) - README: gekuerzt, bodenstaendiger Ton, interne CI/CD-/Infra-Notizen raus - ROADMAP: Umgesetztes markiert, veraltete Punkte entfernt, gestrafft - Tests: 169 Checks gruen (39+18+52+32+28)
2.6 KiB
2.6 KiB
REKORD
Selbstgehosteter Trainings-Tracker für Gym, Laufen und Radfahren. Läuft im Browser, speichert auf deinem Server, gehört dir.
Eine SQLite-Datei als Zustand, ein Python-Backend aus der Standardbibliothek, ein HTML/CSS/JS-Frontend ohne Framework. Kein Cloud-Konto, keine Telemetrie.
Was es kann
Training erfassen
- Gym mit Push/Pull/Legs (frei konfigurierbar), dazu Laufen und Radfahren
- Eingabe als eine Box: Zahl links, Einheit fest rechts (kg, reps, km, min, min/km, bpm, m)
- Sätze abhaken als "Set n [ ]"; der ganze Button ist klickbar, die Kette hakt ohne Lücken ab
- "Reset-Satz" und "Alles zurücksetzen" holen das letzte abgeschlossene Training; optional startet eine Session direkt mit dem letzten Workout oder mit den Plan-Gewichten
- Übungen per Drag & Drop sortieren, Übungen aus anderen Tagen spontan hinzufügen
- Fragezeichen pro Übung: kurze Erklärung (herstellerunabhängig)
Verlauf & Statistik
- "Session starten" / "Session abschließen", mehrere Sessions am Tag
- Verlauf als Liste oder Wochenübersicht; inline bearbeitbar und löschbar
- Statistik: bestes Gewicht je Trainingstag, Differenz zur ersten Messung
Ansicht & Einstellungen
- Deutsch und Englisch
- Themes: Dunkel, System, Hell - plus OLED-Dark-Schalter
- Akzentfarbe aus zehn Farben, Gewichtseinheit kg/lb, Start-Ansicht wählbar
- Einstellungen liegen serverseitig, gelten auf allen Geräten
Mehrbenutzer
- Konten mit Kennwort (gehasht), Daten getrennt pro Benutzer
- Der erste Benutzer ist Administrator und verwaltet Konten und Kennwörter
Daten
- Export/Import als JSON und CSV (Backup, Umzug, Tabellen-Auswertung)
- Workouts über eine kleine API (
/api/workouts) - Demo-Verlauf (
demo-data.json) zum Ausprobieren
Starten
Python (nur Standardbibliothek):
python3 server.py 8080
Oder Docker:
docker compose up -d
Danach im Browser: http://<host>:8080/. Beim ersten Start führt ein kurzer
Wizard durch Sprache, Einzel- oder Mehrbenutzermodus und Darstellung.
Plan anpassen
Übungen, Sätze, Gewichte und Erklärungen stehen in config.json - ohne
Code-Eingriff. Schema: TECH.md.
Daten
- Alles liegt in
data/state.db(SQLite) - backupbar, überlebt Neustart und Container-Rebuild - Datenverzeichnis per
TRAINING_STATE_DIRfrei wählbar - Keine externen Dienste, keine Telemetrie
Mehr
- TECH.md - Architektur, API, Datenmodell
- DESIGN.md - Design-Sprache (Tokens, Komponenten, Anti-Patterns)
- ROADMAP.md - geplante Erweiterungen
Lizenz
AGPL-3.0. Siehe LICENSE.