// the find
arpanghosh8453/garmin-grafana
A Dockerized python Script to fetch Garmin health data and populate that in a InfluxDB Database, for visualization long term health trends with Grafana
Dockerized pipeline that pulls your Garmin Connect data into InfluxDB 1.x and visualizes it in Grafana. Targets self-hosters who want long-term health trend visibility beyond what Garmin's own app shows — especially people who care about intraday data, sleep patterns, and workout GPS tracks on their own infrastructure.
Self-contained docker compose stack with Grafana auto-provisioning means you get a working dashboard without manual datasource wiring. Historical backfill is idempotent — InfluxDB's primary key on timestamp+tags means re-running bulk imports doesn't create duplicates. Session token reuse is handled correctly: authenticates once, persists tokens, avoids hammering Garmin's login endpoint and triggering 429s. Kubernetes Helm chart and a Woodpecker CI pipeline show this isn't a weekend hack — it has real deployment coverage.
Deliberately pinned to InfluxDB 1.11 because Flux on 2.x was painful — reasonable call, but it means you're running software that's effectively in maintenance mode with no upgrade path planned. The OAuth session token lasts about a year and when it expires, users with 2FA have to manually intervene and re-enter a one-time code; there's no automated re-auth flow. The multi-user setup is undocumented in the README proper — it's buried in a GitHub issue comment, which is a fragile place to keep setup instructions. Garmin archives intraday data older than six months to cold storage with a daily refresh cap of ~20-40 days, so bulk historical imports will silently have gaps in HR/sleep stage detail for older dates.