openGym

Own your lifting log: a self-hosted workout app for gym-goers who can run Docker

Self-hosted gym & body-weight tracker — plan routines, log workouts (supersets, warm-ups, cardio), see which muscles are trained, fatigued or detrained, import from FitNotes/Strong/Hevy, passkey login. Your data, your server.

No video published yet. The write-up below covers what the tool does and how to try it.

Category
Applications
Audience
Everyone
Language
JavaScript
Licence
AGPL-3.0

Published Updated

openGym is a self-hosted gym and body-weight tracker — a web app you install on a server you control instead of logging your sets into a company's cloud. It is aimed at people who train regularly, record every set, and do not want that history living inside a subscription app that can raise its price or shut down. The one prerequisite is being willing to run Docker on a machine of your own; after that, you use the app from a browser or a phone.

What it does

The list below is the project's own description of itself, taken from the README, the GitHub description and the video script — not something measured independently.

  • Plans a routine per weekday, so each training day has its prescribed work.
  • Logs supersets, warm-up sets and cardio, not just flat sets of one exercise.
  • Shows which muscles are trained, fatigued or detrained.
  • Runs guided sessions that pre-fill your weights and keep a rest timer.
  • Tracks body weight alongside the lifting log.
  • Imports existing history from FitNotes, Strong or Hevy.
  • Installs as a progressive web app on the phone, synced across devices, behind a passkey login.

How it works

The project is JavaScript end to end: the GitHub topics name React and Vite for the front end and Node.js for the server, packaged to run under Docker. Because it is a progressive web app, you install it from the browser to the home screen rather than from a store; the README also links an Android APK on GitHub, though that link is cut off in the copy saved here, so look under the repository's Releases for it.

Logins use passkeys over WebAuthn instead of passwords, and your data sits in a folder on your own server — nothing about the app depends on an account with the author.

The licence is AGPL-3.0, which matters if you modify it and offer it to other people over a network: you then owe those users your modified source. For a private install it changes nothing. One loose end: mcp appears in the GitHub topics, but the saved README excerpt does not say what that integration exposes, so treat it as unconfirmed until you read the current README.

Getting started

What it needs: a machine you control that can run Docker and Docker Compose — a VPS, a NAS or a home server. The project does not list CPU, memory or disk requirements, so assume nothing about very small hardware until you try. There is no model to download and no API key anywhere in the materials; nothing here calls a paid service. The software itself is free under AGPL-3.0, so the only money involved is your server and, if you want one, a domain and certificate. Passkeys generally expect a secure context, so plan for HTTPS rather than a bare IP address.

The sequence, exactly as the project gives it: clone github.com/DuarteSantos8/openGym, create and fill in the .env file, then run docker compose. The README also points to a project website, a live demo you can click through before installing, and a Discord community. Nothing in the materials mentions an App Store or Play Store listing.

The visible numbers are GitHub's own counters — roughly 3,785 stars and 614 forks — and the README badges report the project's own GitHub Actions tests plus GitLab pipeline and coverage jobs. There is no third-party benchmark or audit to cite, and the project makes no performance claim.

When to use it / when not

The catch is that you become the administrator: Docker, backups of that data folder, upgrades, and reaching the server from the gym on mobile data are all your job. The project is also young — created in July 2026, with pushes continuing into October 2026 — so expect it to keep moving.

Use it instead of Strong or Hevy when you want your training history in a folder you own and are comfortable maintaining a small server. Don't use it if you only want to open an app on your phone and log a set, or if you need a polished iPhone build from the App Store — the materials do not describe one.

Alternatives

FitNotes, Strong and Hevy are the apps most readers are coming from, and openGym imports from all three, which lowers the cost of trying it. Those apps remain the easier choice if hosting is not something you want to learn.

Take openGym seriously if you lift consistently, already run a home server or VPS, and have been annoyed by workout apps holding years of your data behind a renewal. It covers the parts people use daily — planning, logging, guided sessions with a rest timer, and a readable view of what is being trained — and it gives you an import path out of the commercial app you use now. If you do not want to maintain Docker, the self-hosting here is not optional; it is the product.

More in Applications

All of Applications →