add user accounts and OSM peak catalog with zoom-based notability

This commit is contained in:
Vincent van der Wal
2026-07-22 11:10:59 +02:00
parent 196f30521c
commit b17f56b194
26 changed files with 1019 additions and 191 deletions
+20 -8
View File
@@ -1,16 +1,19 @@
# Streba
The GPX analyser, reborn. A single-user, self-hosted web app for analysing GPX
tracks and bagging Alpine peaks.
The GPX analyser, reborn. A self-hosted web app for analysing GPX tracks and
bagging Alpine peaks.
- **Accounts** - anyone can sign up; activities and climbed peaks are per user.
- **Upload** GPX files (drag & drop, multiple at once) - distance, ascent,
moving time and an elevation profile are computed on the spot.
- **Activities** - every track on a map with stats and an interactive
elevation chart.
- **Worldmap** - all your tracks together on the dashboard.
- **Peaks** - a checklist of notable Alpine summits. Cross them off by hand,
or let an uploaded track bag them automatically when it passes within
150 m of a summit.
- **Peaks** - the OSM peaks of the whole Alpine region on a map. Zooming out
shows only the most notable summits (elevation, Wikipedia/Wikidata
presence and tagged prominence decide); zooming in reveals the rest. Cross
them off by hand, or let an uploaded track bag them automatically when it
passes within 150 m of a summit.
## Stack
@@ -39,6 +42,15 @@ Set `STREBA_DATA_DIR` to move the SQLite database somewhere else (defaults to
## Peaks data
The seed list of peaks lives in `src/lib/server/peaks-seed.ts` - edit it to
taste; new entries are inserted on the next start, and your climbed state is
kept.
A fresh database is seeded with ~80 curated famous peaks so the app works out
of the box. To load **all named OSM peaks of the Alps** (tens of thousands),
run the importer once (and re-run whenever you want fresh OSM data):
```sh
node scripts/import-peaks.js
```
It fetches `natural=peak` nodes from the Overpass API for the Alpine bounding
box, scores each peak for notability, precomputes the zoom level from which
it appears on the map, and merges the curated seed peaks into their OSM
counterparts without losing anyone's recorded ascents.