Fetch stops from OpenStreetMap
Deploy PBT / deploy (push) Successful in 16s

This commit is contained in:
2026-09-10 21:44:45 +02:00
parent 0ebf13aacf
commit 2a6e9c690b
14 changed files with 666 additions and 9 deletions
+24 -1
View File
@@ -14,10 +14,33 @@ export PBT_SECRET_KEY="ein-langer-zufaelliger-string"
python app.py # Testlauf auf Port 5000
```
Beim ersten Start legt die App die Tabellen (`users`, `fahrten`) automatisch per
Beim ersten Start legt die App die Tabellen (`users`, `trips`, `stops`) automatisch per
`db.create_all()` an dafür braucht der User `pbt_app` `CREATE`-Rechte in der DB
(sollte durch `GRANT ALL PRIVILEGES ON DATABASE pbt TO pbt_app;` bereits gegeben sein).
## Haltestellen-Lookup
Die Felder „Von" und „Nach" haben eine Autovervollständigung aus allen
österreichischen Haltestellen. Die Daten stammen aus OpenStreetMap
(© OpenStreetMap-Mitwirkende, ODbL) und liegen als Snapshot im Repo
(`data/stops_at.csv.gz`, ~37 000 Haltestellen).
Nach dem Anlegen der Tabellen den Snapshot in die DB laden:
```bash
flask import-stops # FLASK_APP=app.py bzw. im Projektverzeichnis
```
Der Import ist idempotent (Upsert) und braucht kein Internet. Beim Deploy per
systemd einmalig ausführen, danach nur wenn der Snapshot aktualisiert wurde.
Snapshot neu von OpenStreetMap holen (dauert 12 min, braucht Netzugang):
```bash
python scripts/fetch_stops.py # überschreibt data/stops_at.csv.gz
flask import-stops
```
## Produktivbetrieb mit systemd + Gunicorn
1. Projekt nach `/opt/pbt` kopieren, virtuelle Umgebung dort anlegen (s. oben).