openGym
Self-hosted gym and body-weight tracker with workout planning and muscle recovery tracking
Alternative to: strong, hevy, fitnotes


v1.3.5
2026-09-11One bug, and the one everybody with the Android app and their own API key ran into. Web bundle and APK; the API only carries the version number.
- 🔑 “Bring my own API key” works on the phone. Since v1.3.0 every key-store call on Android
hung before it started: the secure-storage plugin was handed to the app as the value of a promise,
and a Capacitor plugin object answers any property name with a native method —
thenincluded — so the promise took it for a thenable, called a nativeSecureStorage.then()that does not exist, and never settled. That one stuckawaitwas all three reports at once: “Save and use the Coach” greyed out forever, the key “not saved” when you came back, and a Coach that sat on “thinking…” without end because the job read the key first. The plugin now travels inside a plain object, a test drives the store through a Capacitor-style proxy so it cannot come back, and the whole flow — save, intake, plan, restart with the key still there — was run on an emulator before tagging. The web app and the “use my self-hosted openGym” mode were never affected. (issues #42, #58; reported by many on Discord)
Install or upgrade
docker compose pull && docker compose up -d
| Image | Tags | Digest |
|---|---|---|
registry.gitlab.com/duartesantos8/opengym/api | 1.3.5 1.3 latest | sha256:ea111626ba222beb6f0de29f2b458272b2e51b0e84a00a806c7ff2335bd52c0c |
registry.gitlab.com/duartesantos8/opengym/web | 1.3.5 1.3 latest | sha256:cbba591c7441cf297bdbedb48bcd0448367407e84c8829c993d1cae3afad94a6 |
Both images are linux/amd64 + linux/arm64. Android: openGym-1.3.5.apk, SHA-256 b4f4747930689703516cbbad26986f1a08b8a16d791e2b7806c94c5291de583c — check it with sha256sum -c openGym-1.3.5.apk.sha256. Built from 684b0054adfcac9ffe7a5fd95c85fd3599658487.
Published on GitHub on 2026-09-11, mirroring the GitLab release of the same tag, where the artefacts above were built (!NN numbers are GitLab merge requests). The same images are on GHCR, built from this release by GitHub Actions: ghcr.io/duartesantos8/opengym-api:1.3.5 and ghcr.io/duartesantos8/opengym-web:1.3.5.