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.

  • MIXEDUNIVERS@discuss.tchncs.de
    link
    fedilink
    English
    arrow-up
    1
    ·
    3 hours ago

    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…

    • TraceApps@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      2 hours ago

      Unfortunately there are no demo sites for either of the projects yet, that is planned for the future.