Document verified Dokku deployment and live sync results

This commit is contained in:
Peter Stockings
2026-10-01 20:47:58 +10:00
parent 8555695c5e
commit fe9888092c
2 changed files with 30 additions and 11 deletions
+10 -9
View File
@@ -26,8 +26,8 @@ account exists. Subsequent accounts start empty.
The local app uses SQLite in `instance/dashboard.db`. Set `DATABASE_URL` to a
PostgreSQL connection string to use PostgreSQL. Database changes use Alembic
migrations. Local schema creation/upgrade has been verified on SQLite; PostgreSQL
runtime validation is recorded in docs/DEPLOYMENT.md.
migrations. SQLite and deployed PostgreSQL migrations have been verified; see
[deployment validation](docs/DEPLOYMENT.md).
### Accounts and sharing
@@ -49,9 +49,10 @@ runtime validation is recorded in docs/DEPLOYMENT.md.
### Bringing in more activities
Run the local sync below, then choose **Settings & imports -> Load new downloads**.
This button imports the cache assigned to your account, without contacting Garmin.
Any account can also upload an original FIT file through Settings & imports.
Use **Settings & imports -> Connect Garmin** to upload an exported session, then
choose **Sync now** or leave hourly sync enabled. Any account can also upload an
original FIT file through Settings & imports. Operators can import local caches
with the command below.
Original files remain private and are not exposed by web download routes.
If multiple Garmin caches existed at setup, an operator can explicitly assign one:
@@ -61,10 +62,10 @@ uv run --locked flask --app app import-local --email owner@example.com --account
```
The application uses CSRF protection, hashed passwords, login throttling, and
server-side authorization on every activity page and data endpoint. Before public
deployment, finish email verification/recovery, shared production rate-limit
storage, and account recovery. Deployment instructions and sync behavior are in docs/DEPLOYMENT.md.
The current server binds only to loopback and runs without debug mode.
server-side authorization on every activity page and data endpoint. Email
verification/recovery and shared production rate-limit storage remain outstanding.
Deployment instructions and sync behavior are in docs/DEPLOYMENT.md.
The local server binds only to loopback; production runs behind the Dokku HTTPS proxy.
Users will upload FIT files or connect Garmin by authenticating locally with
`python-garminconnect` and uploading their exported session tokens. The server