opengym: a self-hosted gym and bodyweight tracker
opengym is an AGPL-3.0 self-hosted workout tracker that plans routines, logs supersets, tracks muscle fatigue and imports from FitNotes, Strong and Hevy.
TL;DR: opengym is a self-hosted workout tracker that plans routines, logs sets including supersets, warm-ups and cardio, and shows which muscles are trained, fatigued or detrained. It imports from FitNotes, Strong and Hevy, authenticates with passkeys, and runs under AGPL-3.0.
What the project is
Most workout apps sync your history to someone else’s database. opengym’s description ends with the reason it exists, your data on your server. That is the product decision everything else supports, and it explains the Docker topic.
The feature list is longer than most projects of this size put in a description:
- Routine planning, so a workout is designed rather than improvised at the rack
- Logging for supersets, warm-ups and cardio, not just straight sets
- Muscle state tracking that separates trained, fatigued and detrained
- Import from FitNotes, Strong and Hevy, so an existing history is not stranded
- Passkey login instead of password handling
The muscle state tracking is the piece with real substance behind it. “Which muscles are fatigued” is a derived value, computed from your recent history, and it answers the question that actually changes a session: what should I train today. Detraining is the same computation run in reverse, and surfacing it is what distinguishes a tracker from a spreadsheet.
How to try it
There is a live instance at https://opengym.duarte-santos.ch, which is the fastest way to decide whether the interface works for you.
For self-hosting, the repository publishes a docker topic, so a container is the expected deployment path. Check the project instructions for the exact image reference rather than guessing at one:
git clone https://github.com/DuarteSantos8/openGym.git
cd openGym
ls
Import order matters when you bring history across. Load FitNotes, Strong or Hevy first and let the tracker compute muscle state from real training data, otherwise you are looking at a body model built from nothing.
curl -s https://api.github.com/repos/DuarteSantos8/openGym \
| jq '{topics: .topics, license: .license.spdx_id, homepage}'
The metadata
| Field | Value |
|---|---|
| Stars | 4,261 |
| Forks | 657 |
| Open issues | 133 |
| Primary language | JavaScript |
| License | AGPL-3.0 |
| Created | 18 Jul 2026 |
| Last push | 4 Oct 2026 |
| Repository size | about 15.9 MB |
The seven published topics, bodyweight, docker, fitness, fitness-tracker, gym, health, are unusually complete for a personal project, and they line up exactly with what the description claims. That is a small signal about maintenance habits worth trusting.
Passkey login is worth flagging as a security choice, since a self-hosted service is one fewer credential store for you to worry about and one fewer shared secret if the instance is ever exposed.
When to use it
It fits if your training history already lives in one of the three import formats, or if you are starting fresh and want to own the database outright. A 15.9 MB JavaScript repository with a container workflow is a light thing to run on a home server.
The detrained and fatigued indicators also suit anyone training on a plan and wanting the app to argue with the plan.
When NOT to use it
Check the license before you build on it. AGPL-3.0 is the most demanding of the common open source licenses, and if you intend to modify it and offer that version to others over a network, you owe them the source.
Skip it if you need a phone app with offline logging and no server to reach. The description says self-hosted, and nothing in it suggests a local-only mode.
One hundred thirty three open issues is normal for a project two and a half months old, but it means you are adopting something in motion. Self-hosting makes that cheap, a bad update is one git checkout away from being reverted.
Source and Accuracy Notes
- Project page: https://github.com/DuarteSantos8/openGym
- Source repository: DuarteSantos8/openGym (verified via GitHub API
html_url) - License: AGPL-3.0 (verified via GitHub API
license.spdx_id) - Stars at time of writing: 4,261
Related Posts
dev-tools
Automotive Skills Suite for AI Engineering
Evaluate Automotive Skills Suite for APQP, ASPICE, HARA, safety-plan, and DIA workflows with setup notes, governance risks, and SME review guidance.
5/28/2026
dev-tools
awesome-agentic-ai-zh Roadmap Guide
Explore awesome-agentic-ai-zh as a Chinese agentic AI learning roadmap, with setup notes, track selection, study workflow, and evaluation guidance.
5/28/2026
dev-tools
Baguette iOS Simulator Automation Guide
Set up Baguette for iOS Simulator automation, web dashboards, device farms, gesture input, streaming, and camera testing with Xcode caveats.
5/28/2026