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.
irmadlad@lemmy.world
curbstickle@anarchist.nexus 8 hours ago
I have put in zero effort to figure out the issues btw, just first run stuff that I’m seeing:
From the logs:
I then opened and ran through the initial config, setting my username up as the first account, and logged in.
Once there, every time I switch a context to exercises, settings, etc, I see a “Not Authenticated” popup despite showing as logged in, and having just logged in with the newly created user moments before. Also, the exercise database is empty, along with no programs. I would assume this has to do with the authentication issue, but again I haven’t dug into it at all.