unify single user and multi user behaviour
This commit is contained in:
@@ -13,7 +13,8 @@ Anyone can publish their data as BAS JSON and others can include it.
|
||||
|
||||
## Key design decisions
|
||||
|
||||
- **No database, no server** — everything is static files in single-user mode; multi-user VPS mode adds SQLite auth only
|
||||
- **Unified data layout** — single-user and multi-user share the same structure: activities always live in `{data-root}/{handle}/`. The only difference is the presence of `instance.db` (auth). No mode switching, no migration.
|
||||
- **No database, no server** — everything is static files; multi-user VPS mode adds SQLite auth only
|
||||
- **Python with uv** for the extract stage
|
||||
- **Astro + Svelte + Tailwind + MapLibre GL + Observable Plot** for the site
|
||||
- **Haversine** (not geopy) for distance calculations (10x faster)
|
||||
@@ -100,24 +101,21 @@ site/ Astro project
|
||||
## How to run
|
||||
|
||||
```bash
|
||||
# Extract
|
||||
# Single-user (no login)
|
||||
cd ~/src/bincio_activity
|
||||
uv run bincio extract --input ~/your-activity-data/activities --output /tmp/bincio_test
|
||||
uv run bincio extract --output /tmp/bincio_test # → /tmp/bincio_test/{handle}/
|
||||
uv run bincio dev --data-dir /tmp/bincio_test
|
||||
# → http://localhost:4321/u/{handle}/
|
||||
|
||||
# Site dev server (single-user)
|
||||
uv run bincio render --data-dir /tmp/bincio_test --serve
|
||||
# → http://localhost:4321
|
||||
# Multi-user (with login)
|
||||
uv run bincio init --data-dir /tmp/bincio_test --handle dave
|
||||
uv run bincio extract --output /tmp/bincio_test # → /tmp/bincio_test/dave/
|
||||
uv run bincio dev --data-dir /tmp/bincio_test
|
||||
# → http://localhost:4321 (login required)
|
||||
|
||||
# Edit server (optional — enables edit drawer in the site)
|
||||
uv run bincio edit --data-dir /tmp/bincio_test
|
||||
# set PUBLIC_EDIT_URL=http://localhost:4041 in site/.env
|
||||
|
||||
# Multi-user local test
|
||||
uv run bincio init --data-dir /tmp/bincio_test --handle dave --password test
|
||||
uv run bincio render --data-dir /tmp/bincio_test --site-dir site --serve # terminal 1
|
||||
uv run bincio serve --data-dir /tmp/bincio_test # terminal 2
|
||||
# site/.env: BINCIO_DATA_DIR=/tmp/bincio_test, PUBLIC_EDIT_URL= (empty)
|
||||
# astro.config.mjs Vite proxy forwards /api/* → localhost:4041
|
||||
# bincio dev does everything: merges sidecars, writes manifest,
|
||||
# symlinks public/data, starts bincio serve (if instance.db exists),
|
||||
# starts astro dev. Ctrl+C stops all.
|
||||
|
||||
# Tests
|
||||
uv run pytest
|
||||
|
||||
Reference in New Issue
Block a user