No description
- Python 47.1%
- JavaScript 17.2%
- HTML 13.9%
- Dart 11.4%
- CSS 10.3%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| .cursor/rules | ||
| alembic | ||
| android_compagnon | ||
| app | ||
| screenshots | ||
| tests | ||
| .gitignore | ||
| alembic.ini | ||
| docker-compose.yml | ||
| Dockerfile | ||
| entrypoint.sh | ||
| improvement.md | ||
| pytest.ini | ||
| README.md | ||
| requirements.txt | ||
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 |
|---|---|
![]() |
![]() |
| Share card | Personal records |
|---|---|
![]() |
![]() |
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 assetsalembic/— database migrationsdata/— persisted data (gitignored)



