AI-Agent e91cd30479
Image bauen und in die Registry schieben / build (push) Successful in 8s
Realistische Demo-Daten (12 Wochen, 49 Sessions) + Roadmap + README-Verweis
- demo-data.json neu generiert: 12 Wochen Push/Pull/Legs mit Plateau-
  Phasen, Deload-Woche, ausgelassenen Trainingstagen, Reps-Streuung,
  nicht abgehakten Saetzen und Notizen; dazu 12 Laeufe und 5 Fahrten
- ROADMAP.md: interne Roadmap in 4 Phasen (Inhalt in der App bearbeiten,
  herstellerunabhaengige Info-Texte mit Bildern/Schritten, Plugin-System
  mit Ollama/Cloud-Coach, Wearable-Import, CLI-Harness, Volumen/1RM,
  PWA, a11y)
- README: Roadmap-Sektion
- test_auth: erwartete Demo-Zaehler dynamisch aus der Datei berechnet
- Tests: 158 Checks gruen (39+18+43+32+26)
2026-10-02 02:29:17 +00:00

REKORD

Rekord & Record: dein Training, festgehalten.

Ein leichtgewichtiger, selbst gehosteter Trainings-Tracker fürs Gym, Laufen und Radfahren. Läuft in jedem modernen Browser, speichert auf deiner Platte und wertet deine Fitnessdaten nicht aus. Kein Abo, kein Konto bei einem Anbieter, keine Datenkraken.

Warum REKORD?

  • Kein Vendor Lock-in. Alles läuft bei dir: Backend auf deinem Server, Zustand in einer portablen SQLite-Datei. Export jederzeit als JSON oder CSV, Import genauso. Zieh um oder hör auf - deine Daten gehören dir.
  • Leichtgewichtig. Python-Standardbibliothek + SQLite im Backend, ein HTML-, ein CSS-, ein JS-File im Frontend. Kein Framework, kein Build-Schritt, keine Node-Installation. Läuft auf einem Mini-PC, einem alten Laptop oder in einem Container.
  • Browserbasiert. Keine App, kein Store, keine Installation. Aufschlagen, loslegen - auf jedem Gerät mit Browser.
  • Cross-Device Sync. Der Zustand liegt serverseitig. Öffne die App am Handy, am Laptop oder am Desktop-Rechner - es ist derselbe Stand. Mehrere Benutzer mit eigenen Konten und getrennten Daten sind eingebaut.
  • UX zuerst. Sätze eintragen mit einer Box (Zahl + Einheit in einem Feld), Set-Kette durch Abhaken, "Alles zurücksetzen", Verlauf inline bearbeiten, Wochenübersicht, Statistik mit Differenz zur ersten Messung. Der Tracker reibt sich nicht in den Weg zwischen dich und die Übung.
  • Dein Take aufs Aufzeichnen. Die App zeichnet auf - Gewichte, Reps, Cardio-Felder - und zeigt die Entwicklung über die Zeit. Sie verkauft nichts, personalisiert nichts und schickt nichts nach Hause.
  • Open Source. AGPL-3.0. Nachvollziehbar, erweiterbar, auditierbar.

Features im Überblick

Training erfassen

  • Gym mit Push/Pull/Legs (frei konfigurierbar) plus Laufen und Radfahren
  • Eingabe als eine Box: Zahl links, Einheit fest rechts (kg, reps, km, min, min/km, bpm, m)
  • Set-Abhaken als "Set n [ ]": der ganze Button ist klickbar, das Set hakt eine Kette ab - ohne Lücken
  • Reset-Satz und "Alles zurücksetzen" laden das letzte abgeschlossene Training
  • Vorbefüllung beim Start (optional): "Letztes Training vorbefüllen" oder "Plan-Gewichte vorbefüllen" (startKg aus der Config, auch ohne Verlauf)
  • Übungen per Drag & Drop sortieren, Übungen aus anderen Tagen spontan hinzufügen
  • Fragezeichen pro Übung: Erklärung plus die passende Maschine

Sessions & Verlauf

  • "Session starten" / "Session abschließen", mehrere Sessions am Tag
  • Keine Geister: erst abgeschlossene Sessions erscheinen im Verlauf
  • Verlauf als Liste oder Wochenübersicht, inline bearbeitbar (Datum, Zeiten, Abhak-Status, Werte) und löschbar
  • Statistik: bestes Gewicht je Trainingstag mit Balken, Differenz zur ersten Messung

Ansicht & Einstellungen

  • Deutsch und Englisch (Server-Standard und pro Benutzer)
  • Farbthema: Dunkel, System (folgt dem Gerät), Hell - plus OLED-Dark-Schalter
  • Akzentfarbe aus zehn Farben (inklusive Weiß)
  • Gewichtseinheit kg oder lb, Start-Ansicht wählbar
  • Einstellungen serverseitig, gelten auf allen Geräten

Mehrbenutzer

  • Eigene Konten mit Kennwort (gehasht), Daten strikt getrennt
  • Der erste Benutzer ist Administrator und verwaltet Konten und Kennwörter
  • Einmaliger Einrichtungs-Wizard beim ersten Start (Sprache, Modus, Darstellung)

Daten

  • Export/Import als JSON und CSV (Backup, Umzug, Tabellen-Auswertung)
  • Workouts über eine kleine API abrufbar (/api/workouts)
  • Demo-Daten (demo-data.json) zum direkten Ausprobieren

Schnellstart

Python (nur Standardbibliothek, kein pip install):

python3 server.py 8080

Oder mit Docker:

docker compose up -d

Danach im Browser: http://<host>:8080/

Beim ersten Start führt dich ein kurzer Wizard durch Sprache, Einzel- oder Mehrbenutzermodus und Darstellung - danach ist die App einsatzbereit.

Den Übungsplan anpassen

Alle Übungen, Sätze, Gewichte, Maschinen und Erklärungen stehen in config.json - ohne Code-Eingriff. Das komplette Schema steht in der technischen Dokumentation.

Automatischer Build (CI/CD)

Ein Push auf main baut automatisch ein Docker-Image und legt es in der Gitea-Registry ab (git.somantis.net/j4stmarkus/trainingsplan). Dafür läuft ein Gitea-Actions-Runner auf dem Server; die Workflow-Datei liegt unter .gitea/workflows/build-image.yml. Die CasaOS-Installation (docker-compose.casaos.yml) bezieht die App aus diesem Registry-Image. Fürs lokale Entwickeln bleibt docker-compose.yml mit build: . bestehen.

Daten & Privatsphäre

  • Alles liegt in data/state.db (SQLite) - backupbar, überlebt Neustart und Container-Rebuild
  • Datenverzeichnis frei wählbar (TRAINING_STATE_DIR)
  • Keine externen Dienste, keine Telemetrie, keine Analyse deiner Daten

Roadmap

Die geplante Weiterentwicklung (Übungskatalog in der App bearbeiten, herstellerunabhängige Info-Texte mit Bildern/Schritten, Plugin-System mit Ollama/Cloud-Coach, Wearable-Import, CLI-Harness) steht in ROADMAP.md.

Lizenz

AGPL-3.0. Siehe LICENSE.

S
Description
REKORD - selbstgehosteter Trainings-Tracker für Gym, Laufen und Radfahren. Leichtgewichtig, browserbasiert, ohne Vendor-Lock-in. Daten bleiben lokal, keine Telemetrie.
Readme AGPL-3.0
1.5 MiB
0 Stars 1 Watchers 0 Forks
Languages
JavaScript 47.2%
Python 40.7%
CSS 10.7%
Shell 0.6%
HTML 0.6%
Other 0.2%