openGym is the project behind this setup. The local test takes minutes. Passkeys and internet access require the hostname and HTTPS configuration to be correct.
- Recommended method
- Docker Compose
- Difficulty
- Beginner
- Typical time
- 15–30 minutes
What you need
- Docker with Compose
- About 140 MB for the initial exercise media download
- A phone or browser
- An HTTPS domain only if using passkeys remotely
Set it up
Clone and configure
Copy the example environment file before starting the containers.
git clone https://github.com/arvids-unavailable/openGym.git cd openGym cp .env.example .envStart the prebuilt images
Pull the current images and launch the stack.
docker compose pull docker compose up -dCreate a profile
Open http://localhost:8080, create a profile and wait for the exercise media download.
Build one small routine
Create a two-exercise test workout, log it and confirm the history updates.
Configure remote access only if needed
Set RP_ID and ORIGIN to the HTTPS hostname exactly as documented. A mismatch is a common cause of passkey failure.
Reserved for launch
Verify it works
Do not call the setup finished until these small tests pass:
- A profile survives a container restart
- The test workout appears in history
- The data directory contains the profile state
- A copied data directory can restore the profile
Protect the service
- Back up the complete data directory, including its secret
- Use HTTPS for passkeys outside localhost
- Enable invite-only signup before exposing a household instance
- Keep the young project updated and review changes
Official resources
Videos are supplemental. Use the official documentation for current commands, versions and security guidance.