- cross-posted to:
- selfhosted@lemmy.world
- cross-posted to:
- selfhosted@lemmy.world
Quick update post for the new v1.0.0-rc.4 release.
LiftTrace is a self-hosted lifting tracker I posted here a few days ago. It’s an open, AGPL-3.0 alternative to subscription apps like Strong ($5/mo), Hevy ($6/mo Pro), Jefit ($7/mo Pro), Fitbod (~$80/yr), and the coaching tier of Trainerize / Caliber. Single Docker container, PWA plus a signed Android APK.
Repo: https://github.com/TraceApps/lifttrace
Image: ghcr.io/traceapps/lifttrace
Latest release (with APK): https://github.com/TraceApps/lifttrace/releases/latest
Full changelog: https://github.com/TraceApps/lifttrace/blob/main/CHANGELOG.md
What’s new in v1.0.0-rc.4
- NutriTrace federation: if you also self-host my sister app (NutriTrace), each completed workout’s estimated calories burned auto-logs to your NutriTrace diary. Wearable data (Fitbit / Garmin / Health Connect) still wins for overlap so you don’t double-count. Set up in Settings → Integrations → NutriTrace with a personal access token.
- Editable workout duration on the completion summary: the Duration tile is now a button. Tap to pick from quick presets (30 / 45 / 60 / 75 / 90 / 120 min) or enter a custom value. Useful for the “forgot to start the timer” case, and the kcal estimate updates live.
- Fallback kcal estimate when no duration was tracked, derived from completed set count and badged “rough” so you know it’s less precise than a timed session.
- Persistent “Connected” pill on the federation card so you can tell at a glance the integration is still healthy, plus a shared loading spinner across Diary, Programs, Coaching, Exercise detail, Statistics, and the Workout editor.
- Polish pass: stronger affordance on the editable Duration tile, title-case sweep across about 20 button and menu labels, better error surfacing for Settings → Backup and Radio when the upstream isn’t reachable, and a small wizard celebration screen at the end of first-run setup.
- Fixed: workout-complete notification firing on every set toggle when re-opening a completed workout’s summary (rc.3 caught the main flow; this patches the toggle edge case).
What’s in it (full feature list)
- Diary with sets, reps, weights, RPE, persistent rest timer that survives navigation, supersets, warm-up generator, and natural-language Smart Add (e.g. “bench 3x5 @ 225, A1: curls 3x12 @ 30”).
- Programs: build mesocycles, assign templates by day, progress through weeks.
- Exercises: full library from wger, free-exercise-db, and exercisedb, plus your own custom entries with images, GIFs, or YouTube links.
- Statistics: volume, PRs, frequency, body stats trends, RPE overlays, sparklines.
- Coaching: trainers can prescribe workouts to athletes, leave per-set feedback, two-way reply threads. Replaces a Trainerize or Caliber subscription for small training rosters.
- Trace AI: optional chat coach, multi-provider (Claude, OpenAI, Gemini, or any OpenAI-compatible endpoint like Ollama, LM Studio, DeepSeek, Groq). BYOK, opt-in, disabled by default.
- Radio: built-in music player for Subsonic, Jellyfin, Plex, and Emby libraries plus Icecast, Shoutcast, and HLS streaming stations. Lockscreen controls, now-playing metadata, frequency visualizer on the FAB.
- OIDC SSO: Authentik, Keycloak, Pocket ID, Authelia, Auth0, Google, anything OIDC 1.0. Multi-provider supported.
- Import from Strong, Hevy, FitNotes, and Jefit CSV exports so you can leave your existing app in about a minute.
- Android: local SQLite mirror with optional server sync, native ExoPlayer for radio, biometric sign-in, signed release APK on every release.
Deployment
services:
lifttrace:
image: ghcr.io/traceapps/lifttrace:latest
ports:
- "3002:3003"
volumes:
- ./data:/data
environment:
JWT_SECRET: ${JWT_SECRET} # required in production
INSECURE_COOKIES: "1" # only if not terminating TLS
docker compose up -d, browse to http://localhost:3002/, finish the first-run wizard. Full env-var reference, reverse-proxy examples (Caddy, nginx), OIDC setup, SMTP setup, and the four supported “connecting from Android” paths are in DEPLOY.md.
Signed APK SHA-256 is published with each GitHub Release for verification. Debug APK (accepts HTTP and self-signed certs) is npm run android:debug for LAN-only setups.
No telemetry, no analytics, no anonymous usage pings. The app phones home only to your own server, or doesn’t phone home at all in Android local mode.
is there a Demo?
I have a short question is this Docker Projekt only for weightlifters or also for normal gym user?
I thought long about what I need and I like that it integrates with a Projekt that monitors your meal intake…
Unfortunately there are no demo sites for either of the projects yet, that is planned for the future.
If you’re not getting much love here, don’t forget the fitness & lifting communities that exist!
Appreciate the tip. Thanks!



