Just made LiftTrace public after months of development. It's a self-hosted weightlifting / training log that runs in a single Docker container on your own hardware, with a PWA frontend and a signed Android APK. Sister app to NutriTrace under the same TraceApps umbrella.

LiftTrace Diary

What it does:

  • Diary with sets, reps, RPE, warm-up flagging, supersets, rest timer
  • Smart Add — type or speak your workout ("bench 3x5 @ 225, A1: curls 3x12, A2: pushdowns 3x12") and the AI parses it into structured sets
  • Programs with mesocycles, weekly templates, coach prescriptions for trainer / athlete pairs
  • Exercise library seeded from wger + Free Exercise DB (~1,500 exercises with images), plus your own custom uploads
  • Statistics: volume, PRs, frequency heatmap, body weight trends
  • OIDC SSO for Authentik, Keycloak, Pocket ID, Authelia, Auth0, Google, etc.
  • Workout History Import from Strong, Hevy, FitNotes, and Jefit CSVs (so you don't lose your history switching over)
  • Radio player built in for Subsonic / Jellyfin / Plex / Emby plus internet stations (because lifting and lockscreen media controls > switching apps mid-set)
  • AI coach with live workout context — bring your own Claude / OpenAI / Gemini key, or point it at Ollama / LM Studio / any OpenAI-compatible endpoint
  • Android app with offline-first SQLite, biometric sign-in, native ExoPlayer, optional WorkManager reminders

Self-hosted principles:

  • AGPL-3.0, source is open, no telemetry, no central server, no analytics, no cloud sync to anybody else
  • Single Docker container + bind-mounted volumes for DB and uploads
  • Your data stays on your hardware. Back up with cp, restore with cp.

Quick start:

services:
  lifttrace:
    image: ghcr.io/traceapps/lifttrace:latest
    ports: ["3002:3003"]
    volumes:
      - ./data/db:/data/db
      - ./data/uploads:/data/uploads
    environment:
      - DB_PATH=/data/db/lifttrace.db
      - UPLOADS_PATH=/data/uploads
      - JWT_SECRET=change-me

all 6 comments

sorted by: hot top controversial new old
[–] 34 points 5 months ago (1 child)

already losing me with the AI art slop

  • source
  • hideshow 1 child comment
  • [–] 6 points 5 months ago

    That looks pretty cool. Doctor says no more lifting weights, but I do resistance training and speed walking. Might have to give it a go.

  • source
  • [–] 15 points 5 months ago* (2 children)
  • 4 comments in c/selfhosted@lemmy.world view that post
    [–] 2 points 5 months ago (1 child)

    If you’re not getting much love here, don’t forget the fitness & lifting communities that exist!

  • source
  • hideshow 1 child comment
  • [–] 1 point 5 months ago (1 child)

    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...

  • source
  • hideshow 1 child comment
  • 4 comments in c/fitness@lemmy.world view that post
    [–] 3 points 5 months ago (2 children)

    Gotta be honest with you. It's a little sus when an open source app has no commit history.

  • source
  • hideshow 2 child comments
  • [–] [S] 2 points 5 months ago* (1 child)

    Understood. The public repo isn't where day-to-day work happens. Active development lives in a private dev repo and the public mirror gets squashed syncs at release time, which is why all you see are "chore: sync from lifttrace-dev (v1.0.0-rc.X)" entries.

    Same pattern applies to my sister app NutriTrace. That public repo at TraceApps/nutritrace is at rc.42 right now, similar squashed-sync history, plus a couple of merged external PRs in the open, so the workflow isn't unique to one repo or trying to hide anything.

    Reason for the split: the dev repo has a few files (internal planning docs, keystore config, that kind of thing) that aren't part of the shipped product, so I've been keeping it separate.

  • source
  • parent
  • hideshow 1 child comment
  • [–] 1 point 4 months ago*

    I always appreciate a new foss app. Especially if it is selfhosted. To me it looks very feature rich. Maybe too feature rich for a new project but I also don't know how long you've been coding it for?

    I don't understand why it includes the radio. That is completely different. Weight is related but i'd rather have a dedicated app for that because it is still slightly different. Yet the bodyweight is useful for tracking exercises with body weight. But it should rather pull the info from openscale/the store instead.

    I like paying/donating for foss software. I would 't highlight the price difference too much. It is nice that everyone can use it even if he's from a poor household/country but supporting a foss project can lead to great software.

  • source