openGym

Open source

Self-hosted workout and body-weight tracking with passkeys and offline logging

openGym tracks routines, sets, progress and body weight on infrastructure you control. Use a browser PWA or the Android app, import existing logs and manage sync, passkeys, backups and optional AI features.

Business SoftwareOpen sourceSelf-hostedWeb
Visit official website
CategoryBusiness Software
AccessSelf-hosted
LicenseAGPL-3.0-or-later
Founded2026
Profile views12
Latest sourcev1.4.1; main @ e348fc1
Overview

What is openGym?

openGym is an open-source, self-hosted workout and body-weight tracker for people who want to own their training history. It combines routine planning, guided sessions, exercise media, progress charts and data import in a phone-friendly application. For a developer or homelab operator, the central choice is where that history lives: in a local mobile app, or on a server that synchronizes several devices.

Read the full overview

The standard self-hosted stack has two containers: a Node.js API and an nginx web service serving the React frontend and exercise media. Persistent account and profile data lives in the mounted data directory. The supported Compose workflow does not require a separate PostgreSQL or Redis installation. Prebuilt images are available for amd64 and arm64, and the default web port is 8080.

Browser profiles use passkeys and can synchronize with the server. The Android APK can run entirely locally without an account, or pair with a self-hosted instance. iPhone users can install the web application on the home screen; the documentation discusses building an iOS shell, but that is not the same as a generally available App Store download.

The repository began in July 2026 and the latest release checked was v1.4.1. Current main-branch documentation can describe changes that are not yet in a selected container tag. The self-hosting guide covers setup and recovery; this profile also records the reviewed commit so an operator can compare it with the release actually deployed.

openGymBusiness Software

Self-hosted workout and body-weight tracking with passkeys and offline logging

Open sourceSelf-hostedOpen source
Why teams use it

Key capabilities

  • Routines and guided logging Build a weekly plan or a rotating routine, start a session with previous values available and record sets as you train. The project supports warm-ups, supersets, drop sets, rest-pause, timed work and cardio, together with rest timers and per-exercise notes.
  • Exercise media and custom movements Browse an illustrated exercise catalog by muscle and equipment, then add your own movements and media. Exercise animations are included in the distributed web image and Android package. Custom uploads add persistent files that need to be backed up with the training history.
  • Progress and body-weight history Review logged activity through charts, records, a year heatmap and body-weight trends. Muscle-volume and fatigue displays are calculations from recorded activity, not measured recovery or a medical diagnosis. Corrected workout entries can change the derived results.
  • Passkey profiles The self-hosted service supports per-profile data and WebAuthn sign-in. Passkeys require a secure browser origin, with localhost as the development exception. An instance can optionally enable password sign-in; account policy and invitations are operator choices rather than a required hosted subscription.
  • Offline work and synchronization A device keeps a local copy while the server is unreachable and can synchronize later. The project documents field-level merging when more than one device edits state. Test offline edits, conflicting routine changes and reconnect behavior before relying on several devices during the same session.
  • Imports and exports Import supported FitNotes, Strong and Hevy histories, plus Apple Health body-weight exports. Export application data as JSON and share routines as files or printable output. Import formats differ, so verify timestamps, units, exercise mapping and duplicate handling with a copy of the source history.
  • Android and browser access Use the published signed Android APK for local-only logging or connect it to your server with a pairing code. Browser access works across desktop and mobile devices; a home-screen PWA provides the practical iPhone path. Native desktop applications are not part of the documented distribution.
  • Documented API and optional AI The repository supplies an OpenAPI 3.1 HTTP specification and an optional local MCP reader. AI coaching is an opt-in feature with provider configuration and explicit approval of proposed changes. External AI use can send selected training data to that provider and may incur usage costs.
API access Open-source code Self-hosted deployment Web
Use cases

Where openGym fits

A personal training log under your control

Run one private instance for your own routines and weight history, then decide whether phone-only storage or server sync fits your use. Keeping the data yourself removes dependence on a third-party account, but it also makes device loss, server availability and backups your responsibility. Test the JSON export while the installation is still small.

A small shared instance

Passkey profiles and the optional admin dashboard can support several people using the same service. Set the intended registration policy and decide whether invitations are required. Verify that a second profile cannot read the first profile's state, and document account recovery before inviting other users onto a personal server.

Migrating an existing workout history

The import documentation describes the supported source formats. Trial an import with representative sessions before moving the full history. Check dates, kilograms versus pounds, warm-up flags and exercise names, then compare totals with the original app. Keep the untouched export so a failed mapping can be repeated without losing the source.

A phone app connected to a homelab

The Android app pairs with an already authenticated browser session rather than using the browser's passkey directly inside its WebView. The phone can retain offline changes and synchronize them later. Reverse proxies must pass API requests, bearer authorization and CORS preflights correctly; a proxy login page returned with HTTP 200 is not a successful API response.

Read-only analysis and optional assistance

The local MCP server gives a supported client read access to training information. A separate optional coach can draft or review routines through configured providers. Treat both as explicit data-access decisions. Estimates and generated suggestions describe software behavior; they do not establish a safe training prescription or replace a qualified practitioner's assessment.

Choose for your workload

Positioning and limitations

openGym is a good fit for a technically comfortable user who values data export, self-hosting and a clear distinction between local and synchronized storage. It covers personal workout logging rather than gym-membership billing, access gates or a commercial facility-management system. Its strongest technical feature is the ability to inspect and operate the whole data path.

The self-hosted and mobile-local modes have different account and recovery behavior. The server mode uses profiles and supports device synchronization. The local app has no backend by default, and the phone is the durable home of its state. A browser PWA should not be described as a separately released native desktop or iOS application.

The application is AGPL-licensed; package metadata specifies AGPL-3.0-or-later. Read the license and third-party notices when distributing a modified build or providing a networked version. Exercise media and other bundled material have their own provenance. Review those notices before reusing the catalog outside the application.

The software is free to obtain, and the project states that it has no subscription or advertising requirement. Your server, storage and optional AI provider still have operational costs. Docker is deployment infrastructure and Ollama is an optional compatible AI endpoint; neither is an alternative workout tracker.

View interface preview
openGym interface preview from the official project
Source: official project assets. ITHub editorial profile, October 15, 2026.
Why it matters

Training history has value because it accumulates over time. A portable JSON export, documented API and readable persistent state make it easier to move that history to a new device or installation. The same design also lets an operator inspect what an optional integration can read instead of accepting an undocumented hosted sync service.

Treat the mounted data directory as part of the application, not a disposable container artifact. The Compose file explicitly includes users, passkeys, per-user state, a session secret and uploaded exercise media. The optional coach credential cache is mounted separately. Follow the backup guide and restore into an isolated test instance before depending on a scheduled archive.

For phone access, configure RP_ID and ORIGIN to match the real HTTPS hostname. Passkeys are tied to that relying-party identity, so changing a domain is an authentication change as well as a reverse-proxy change. Keep proxy limits, registration policy and update ownership explicit. Read the security policy and use a release tag rather than assuming a moving latest image is reproducible.

Evaluate the installation with one complete session, a representative import, an offline edit, a second-device sync and a backup restore. If enabling the coach, inspect the consent screen and selected provider first. Recovery and muscle-map indicators remain software estimates from logged data; this profile reviews the application's documented behavior and makes no medical or performance claims.

“Self-hosted workout and body-weight tracking with passkeys and offline logging”

Technical details

Access
Self-hosted
Source model
Open source
License
AGPL-3.0-or-later
Founded
2026
Data location
Operator-controlled self-hosted storage or local Android storage; optional AI data uses the chosen provider
Pricing model
Open source
API
Available
Source checked
October 15, 2026
Before you shortlist

What to verify

Profile audiences: Developers, System Administrators.

  • Confirm current features, licensing and support terms.
  • Validate deployment, data location and access control.
  • Test integrations, exports and recovery workflows.
Evaluation methodology →
Community experience

Reviews of openGym

No published reviews yet.

Loading review form…

Continue with the publisher

Official resources

Documentation ↗Source code ↗Community ↗

Related integrations: Docker, Ollama.

Official product resources

Explore openGym

Self-hosted workout and body-weight tracking with passkeys and offline logging

Get started with openGym View documentation
  • Open source
  • Self-hosted
  • API available
  • Web access