No description
  • Python 47.1%
  • JavaScript 17.2%
  • HTML 13.9%
  • Dart 11.4%
  • CSS 10.3%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-09-30 20:29:42 +01:00
.cursor/rules Add multi-photo activities, filtered track map, and creation UX improvements. 2026-07-03 20:50:05 +01:00
alembic Add multi-photo activities, filtered track map, and creation UX improvements. 2026-07-03 20:50:05 +01:00
android_compagnon Improve elevation gain with reference threshold and deduplication. 2026-06-18 10:11:18 +01:00
app Save share cards on first open and show them in a full-page viewer. 2026-09-30 08:26:01 +01:00
screenshots Refresh the README so it matches the current app and screenshots. 2026-09-30 20:29:42 +01:00
tests Save share cards on first open and show them in a full-page viewer. 2026-09-30 08:26:01 +01:00
.gitignore Scaffold FastAPI app with SQLite models and Alembic migrations. 2026-06-12 10:58:44 +01:00
alembic.ini Scaffold FastAPI app with SQLite models and Alembic migrations. 2026-06-12 10:58:44 +01:00
docker-compose.yml Redraw activity share cards as Moonraker posters. 2026-09-29 21:38:34 +01:00
Dockerfile Simplify Dockerfile by removing unused apt-get step. 2026-06-12 11:07:34 +01:00
entrypoint.sh Add Docker Compose deployment and README. 2026-06-12 11:06:57 +01:00
improvement.md Add activity type icons and a PNG share card for outings. 2026-09-28 19:20:02 +01:00
pytest.ini Add pytest suite for GPX parsing, stats, and objectives. 2026-07-05 20:04:24 +01:00
README.md Refresh the README so it matches the current app and screenshots. 2026-09-30 20:29:42 +01:00
requirements.txt Add pytest suite for GPX parsing, stats, and objectives. 2026-07-05 20:04:24 +01:00

Tracks

Self-hosted web app for logging sport activities — hikes, bike rides, ski tours, climbs, and swims — with GPX traces, maps, statistics, and goals.

Screenshots

Dashboard Activity
Dashboard with this month's distance, objectives, and recent outings Activity detail for a bike ride, with map, elevation, and stats
Share card Personal records
Share card poster for the same outing Personal records on the statistics page

Features

  • Log hikes, bike rides, ski tours, climbs, and swims with a date, place, comment, GPX trace, and photos
  • Map view with the GPS trace, elevation profile, and speed profile (Leaflet + OpenStreetMap)
  • Activity list with search, sort, pagination, and type icons
  • Dashboard with recent outings, objectives, and quick stats
  • Objectives for distance, duration, or activity count
  • Statistics with charts, an activity calendar, filters, and a track heatmap
  • Personal records from logged outings
  • Share card poster for an outing, opened in a full-page viewer
  • Responsive layout for mobile and desktop

No login — intended for single-user use on a trusted network (e.g. your LAN).

Quick start

docker compose up --build

Open http://localhost:8080.

Data (SQLite database, GPX files, photos) is stored in ./data/.

Development

python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
alembic upgrade head
uvicorn app.main:app --reload --host 0.0.0.0 --port 8080

Run tests (with the venv activated, or use the venv binary directly):

pytest
# or without activating:
.venv/bin/pytest

Configuration

Variable Default Description
DATA_DIR data Directory for database and uploads

Project structure

  • app/ — FastAPI application, templates, static assets
  • alembic/ — database migrations
  • data/ — persisted data (gitignored)