// the find
SamR1/FitTrackee
Self-hosted outdoor activity tracker :bicyclist: [mirror of codeberg repository: https://codeberg.org/FitTrackee/FitTrackee]
FitTrackee is a self-hosted workout tracker that ingests GPX files and displays routes on OpenStreetMap with stats, charts, and equipment tracking. It's for developers or privacy-conscious athletes who want Strava-like functionality without handing their movement data to a third party. Flask backend, Vue 3 frontend, PostgreSQL with PostGIS for geospatial queries.
The stack is genuinely well-chosen: PostGIS for geospatial data rather than rolling your own coordinate math, gpxpy for parsing, Leaflet for maps — nothing exotic, all battle-tested. The project has typed Python (mypy enforced), ruff formatting, and separate test pipelines for Python and JS, which is more discipline than most solo-maintained self-hosted projects bother with. OAuth2 support means you can connect third-party clients without sharing credentials. Translation managed via Weblate with active coverage across a dozen-plus languages is rare for a project this size.
It's still marked 'under heavy development' with a provisional roadmap, and the GitHub repo is explicitly a mirror of the Codeberg canonical — issues and PRs live elsewhere, which creates friction if you find a bug and go to GitHub first. The async task processing (Dramatiq broker) adds a Redis or RabbitMQ dependency that isn't obvious from the README, making the self-hosting story heavier than 'just run docker-compose'. Test coverage is Python-only; the Vue 3 frontend has CI checks but no coverage badge, so you're flying blind on frontend regressions. Smartwatch support is thin — Gadgetbridge is listed as 'no integration', so Garmin, Apple Watch, and Polar users are stuck manually exporting files.