Sign inSign up

exercisetracks/tracks

By exercisetracks

•Updated 3 days ago

Image
0

1.2K

exercisetracks/tracks repository overview

⁠Tracks

Your own private Garmin Connect / Strava — self-hosted, for you or your household.

Tracks pulls your activities, sleep and health data straight off your Garmin watch, analyses your training, builds periodized training plans, and shows it all on fully self-hosted maps. It runs on your own hardware, and nothing it holds ever goes to Garmin or anyone else.

It comes in three parts that work together or on their own: the server (this image), an Android app that talks to your watch over Bluetooth and keeps working for days offline, and a watch app that syncs your own music library to the watch.

⚠️ Built for a household, not as a public service. Tracks supports several accounts, each sealed under its own key, but it's meant to run on your network behind your own HTTPS reverse proxy.

⁠Quick start

docker run -d --name tracks --restart unless-stopped \
  -p 4080:80 \
  -v tracks-data:/data \
  -v tracks-maps:/map-data \
  exercisetracks/tracks:latest

Then open http://localhost:4080⁠ and create your admin account — there's nothing to configure first. On its first start, Tracks generates its own secrets and database, kept in the tracks-data volume.

Create the admin account before exposing the port. Until one exists, Tracks has no credentials to check, so anyone who can reach it can claim it.

Storage: tracks-data stays small (megabytes per year) and holds your database and the original files from your watch. tracks-maps is only used if you turn on self-hosted maps (allow at least 20 GB) — with maps off, nothing is downloaded.

⁠Docker Compose

Using compose.yaml⁠ and, optionally, .env.example⁠ for settings:

docker compose up -d
⁠Updating
docker compose pull && docker compose up -d

Database upgrades run automatically — take a backup first (docker exec tracks tracks-backup > tracks-$(date +%F).tar.gz). :latest follows every release; pin :1 or an exact version (e.g. 1.1.0) if you'd rather update on your own schedule.

⁠Tags

  • latest, X, X.Y, X.Y.Z — all point at the same releases; pick the precision you want to track.

⁠Learn more

Full feature list, the Android app, connecting a Garmin watch, backups, configuration and security notes are all in the GitHub README⁠.

License: AGPL-3.0-or-later⁠.

Tag summary

Content type

Image

Digest

sha256:92e925eaa…

Size

258.3 MB

Last updated

3 days ago

docker pull exercisetracks/tracks