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
+20 -2
View File
@@ -12,7 +12,8 @@ key separately from database backups; losing it requires Garmin reconnection.
Push to Gitea, then deploy with `dokku git:sync --build stride
https://gitea.peterstockings.com/peterstockings/Stride.git main` on the server.
Enable HTTPS using `dokku letsencrypt:enable stride`.
Map the web port with `dokku ports:set stride http:80:8000`, then enable HTTPS
using `dokku letsencrypt:enable stride`.
## Sync
@@ -42,4 +43,21 @@ implemented. For a larger public deployment configure shared rate-limit storage.
Local automated suite: 39 passing tests, including manual/scheduled jobs,
encryption, retry/authentication failure, locking, CSRF, and access control.
Live deployment and Garmin results will be recorded after verification.
Live verification on 2026-10-01:
- Built and deployed on Dokku 0.38.23; all PostgreSQL migrations succeeded.
- HTTPS certificate issued; external `/health` returned HTTP 200 and `status: ok`.
- Migrated the existing local account and 18 activities, preserving its password hash.
- Reused the local Garmin session on the Linux server, saved it encrypted, and
imported one new activity (19 total).
- Submitted a manual sync to the public HTTPS endpoint with an authenticated
session, CSRF token, and same-origin Referer. The background worker completed it.
- Moved `next_sync` into the past with `pending=false` and scheduling enabled.
The running worker picked it up automatically and completed the scheduled run.
This exercises the schedule due check without waiting an hour.
- Both repeat syncs imported zero duplicates and reported zero failures.
- Authenticated dashboard returned 200; anonymous private activity access returned 404.
- Production uses one web container (two Gunicorn processes) and one worker;
hourly scheduling remains enabled. The local session copy should no longer be
used concurrently with the server.