Files
bincio-activity/docs/getting-started.md
T
2026-04-08 19:37:33 +02:00

2.2 KiB

Getting started

BincioActivity turns a folder of GPX/FIT/TCX files into a static website you host yourself. No database. No cloud dependency. No account.

Prerequisites

  • Python ≥ 3.12 and uv
  • Node ≥ 20 and npm (for the site)
  • Your activity files (Strava export, Garmin export, Karoo, etc.)

Install

git clone https://github.com/brutsalvadi/bincio-activity.git
cd bincio-activity
uv sync

Configure

cp extract_config.example.yaml extract_config.yaml
$EDITOR extract_config.yaml

Minimum configuration:

owner:
  handle: yourname       # used in URLs and federation
  display_name: Your Name

input:
  dirs:
    - ~/your-activity-data/activities

output:
  dir: ~/bincio_data

The config file is gitignored — safe to store Strava credentials here.

Extract

uv run bincio extract

This reads all GPX/FIT/TCX files (including .gz variants), deduplicates them, and writes a BAS data store to ~/bincio_data/.

Re-running is safe — unchanged files are skipped (hash-based). To force a full re-extract: rm -rf ~/bincio_data && uv run bincio extract.

Build the site

cd site && npm install && cd ..
cp site/.env.example site/.env
# Edit site/.env: set BINCIO_DATA_DIR=~/bincio_data
uv run bincio render

Output is in site/dist/ — a folder of static files. Drop it anywhere: GitHub Pages, Netlify, a Raspberry Pi, a USB stick.

Dev mode

uv run bincio render --serve    # → http://localhost:4321

Enable the edit UI

The edit UI lets you rename activities, add descriptions, upload photos, and sync from Strava — all from the browser.

uv sync --extra edit
uv run bincio edit              # starts on http://localhost:4041
# Add to site/.env:
# PUBLIC_EDIT_URL=http://localhost:4041

An Edit button and an Upload ↑ button appear in the nav.

Next steps