MCPcopy Create free account
hub / github.com/Cawlumm/lyftr

github.com/Cawlumm/lyftr @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
698 symbols 2,187 edges 159 files ⚖ MIT 107 documented · 15% updated 5d agov0.1.0-beta.6 · 2026-08-15★ 30515 open issues

Browse by type

Functions 570 Types & classes 128
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Lyftr — self-hosted workout tracking

Self-hosted, mobile-first workout & nutrition tracker.

Free, open source, and yours to run — own your data.

Live demo · Docs · Download APK · Discord

MIT License Beta GitHub stars Featured in selfh.st Android APK iOS planned


What is Lyftr?

A workout tracker you fully own. Log workouts, build reusable programs, run a guided gym session with a rest timer, and track nutrition and bodyweight — all self-hosted and lightweight, with your data in a single SQLite file on your server.

No subscription. No lock-in. No "your export is a Pro feature."

Features

🏋️ Workouts 800+ exercise library, program builder, guided active mode
📱 Gym Mode Full-screen, one exercise at a time, with a rest timer
📈 Progress Personal records, progression charts, muscle diagrams, dashboard
🍎 Nutrition Calories, macros, barcode scan, food search
⚖️ Weight Trend graph, lbs / kg across all data
🔒 Yours Self-hosted — a single SQLite file, all data on your server

Planned: PWA · Strong/Hevy CSV import · iOS app.

Workouts Active workout Gym Mode Programs Settings

Quick start

No clone, no build — just Docker:

curl -o docker-compose.yml https://raw.githubusercontent.com/Cawlumm/lyftr/main/docker-compose.yml
curl -o .env https://raw.githubusercontent.com/Cawlumm/lyftr/main/.env.example
# set a strong JWT_SECRET in .env, then pull the prebuilt images and start:
docker compose pull && docker compose up -d

Open http://localhost and create your account.

📖 Full guide — configuration, HTTPS, backups, the mobile app, and troubleshooting live in the docs → lyftr-app.pages.dev.

Try it

  • Live demolyftr-demo.fly.dev · demo@lyftr.local / password123 (resets hourly; that account is demo-only — your own install has no default login)
  • Androiddownload the APK from the newest release, then point it at your server (mobile docs). iOS is planned.

Roadmap

  • [x] Workouts, programs, gym mode, rest timer
  • [x] Exercise PRs, progression charts, dashboard
  • [x] Weight + nutrition tracking
  • [x] Docker deploy · Android app · docs site
  • [ ] PWA · Strong/Hevy CSV import · iOS app · hosted option

Tech stack

Go · Gin · SQLite — React · TypeScript · Tailwind · Vite (web) — React Native · Expo (mobile) — Astro · Starlight (docs) — Docker · nginx.

Contributing

Bug reports, feature requests, and PRs are welcome — open an issue before large changes. Start with CONTRIBUTING.md for setup and conventions, and docs/TESTING.md for how the test suite is organised.

Beta — actively built, expect rough edges and frequent updates. The software equivalent of going to the gym for the first time.

Support

Lyftr is free and open source under the MIT license — run it on your own hardware, no subscription.

The most useful things you can do are free: file a reproducible bug report, fix a doc page that was wrong, or tell another self-hoster it exists.

If you'd rather help with the running costs, sponsorship covers the demo server (~$4/month) and the developer accounts Lyftr needs to reach more platforms — the iOS app is blocked on a $99/year Apple Developer account, not on the code.

Sponsor on GitHub · All the ways to help

License

MIT

Extension points exported contracts — how you extend this code

browse all types & interfaces →

Core symbols most depended-on inside this repo

browse all functions →

Shape

Function 469
Method 101
Interface 71
Struct 56
TypeAlias 1

Languages

Go50%
TypeScript50%
Python1%

Modules by API surface

backend/controllers/food_test.go50 symbols
backend/models/models.go29 symbols
web/src/types.ts24 symbols
backend/controllers/weight_test.go20 symbols
backend/controllers/food.go20 symbols
backend/stores/workout.go18 symbols
web/src/pages/GymModeWorkout.tsx15 symbols
backend/stores/food.go14 symbols
web/src/stores/settings.ts13 symbols
backend/stores/weight.go13 symbols
backend/stores/program.go13 symbols
web/src/components/AddWorkoutModal.tsx12 symbols

For agents

$ claude mcp add lyftr \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page