LiftTrace is a self-hosted weightlifting tracker (Docker + Android, AGPL-3.0). rc.5 is the next public roll-up, bundling everything since the rc.4 release.
What’s new
Scheduled automatic backups. Settings → Backup → Schedule lets you pick a time + frequency (daily / weekly). Server installs get an admin UI with optional ENV lock for managed deployments; the Android app does the same for offline-only users, writing scheduled backups to device storage or the share sheet.
Multi-architecture Docker image. The public image at ghcr.io/traceapps/lifttrace now ships both amd64 and arm64 builds, so Raspberry Pi 4 / 5 and other ARM self-hosters can docker compose up -d without building from source.
Default session length raised. From 30 days to 1 year so PWA users stop getting signed out every month. Admins can still set their own session length under Settings → User Management → Session Length.
Better biometric failure path on Android. When a stored auth token has expired, biometric sign-in now surfaces a clear “Session Expired” prompt instead of silently bouncing back to the Login screen with no explanation.
Fixes
INSECURE_COOKIESis now called out inline in the exampledocker-compose.ymlwith a comment explaining the failure mode (every request 401s after a successful login because the browser drops theSecurecookie over plain HTTP); README troubleshooting entry expanded with the exact Firefox console message that confirms the diagnosis (#4)- Sync pulls no longer clobber local pending edits. An incoming server pull respects in-flight local changes instead of overwriting them with older data.
- Sync now clears local auth state on a 401 response so the user gets prompted to sign in again, instead of the app looping silently on every subsequent request.
Install / upgrade
- Docker: pull the new image and restart your stack (see the README for compose snippets)
- Android: signed APK on the release page
- Full CHANGELOG: main repo
What is LiftTrace?
Self-hosted weightlifting tracker. Diary (sets, reps, weights, RPE, supersets, warm-ups, persistent rest timer, natural-language Smart Add), Programs (mesocycles, templates, week-by-week progression), Exercises (full library from wger / free-exercise-db / exercisedb plus your own custom entries with images, GIFs, or YouTube links), Statistics (volume, PRs, frequency, body stats trends, RPE overlays), Coaching (trainer prescribes workouts to athletes, per-set feedback, two-way reply threads), AI assistant (Claude / OpenAI / Gemini / Ollama, BYOK, opt-in), built-in music player (Subsonic / Jellyfin / Plex / Emby libraries plus Icecast / Shoutcast / HLS streaming stations with lockscreen controls), OIDC SSO (Authentik, Keycloak, Pocket ID, Authelia, Auth0, Google, anything OIDC 1.0), workout import from Strong / Hevy / FitNotes / Jefit CSVs, federation with NutriTrace (auto-log workout calories burned to your NT diary). Docker on the server, Capacitor app on Android. AGPL-3.0 licensed.


Ok, I’ve got some utility/usability comments:
Exercise Creation:
Workout:
I know you’re not looking to add features in when you’re at RC, just some general feedback on what I like to see/do
Genuinely useful feedback, thanks for taking the time. Walking through each:
Per-exercise sharing. Real gap. The exercises table is already structured cleanly enough to dump one as JSON; adding a “share this exercise” button that produces an importable file is small. The community-repo idea is good too: a separate
awesome-lifttrace-exercisesrepo where people can drop contributions, and the in-app importer can read from a URL. Going on the roadmap.Custom equipment + searchable tags. The schema already supports arbitrary equipment strings; the UI just defaults to a fixed list. Adding a “+” in the equipment picker plus a “what’s available today” filter chip set on the Exercises page is genuinely useful, especially for travel and home-gym use. Adding to the roadmap as a near-term candidate.
Per-exercise timer for time-based work. Real gap. The rest timer infrastructure exists but doesn’t currently cover “do this exercise for N seconds with a countdown and a cue.” That’s a meaningful addition for anyone doing carries, planks, isometrics, hangs, or hybrid stuff. Sharing the same audio + haptic plumbing as the rest timer keeps it cheap. Roadmapped.
Per-set / per-round rest in HIIT-style circuits. Currently rest is global with per-exercise memory, which doesn’t cover the “20s between reps, 2 minutes between rounds” pattern you described. That’s a structural change to how sets express rest. Going on the list to think through together with the time-based timer above, since they share infra.
Heart-rate data. The export direction you called out is the cheap win, and you’re right that PWA makes it easy. I’ll push a CSV export of the completed workout (sets, reps, weights, RPE, timestamps, rest durations) in a near term RC. That covers anyone who wants to feed an external analysis pipeline. Live HR ingestion from a BLE chest strap is the heavier direction and goes on the roadmap.
Thanks again for your valuable feedback. Appreciate the level of detail.