Commit graph

5 commits

Author SHA1 Message Date
dev
288ccef090 Backup script removes same-day snapshot before VACUUM INTO
VACUUM INTO refuses to overwrite, so re-runs silently kept stale data
(backup showed 6 users, live had 2). Caught by comparing counts.
2026-10-13 09:05:17 +05:30
dev
ad8e878af8 Daily SQLite backup script (VACUUM INTO, 7-day rotation)
Live user data had only a stale pre-migration backup. First snapshot
verified: 9,837 questions, 6 users. Termux has no cron; script is manual
or Tasker-driven.
2026-10-13 00:06:20 +05:30
dev
b9763c44cc Add multi-stage Dockerfile (17MB binary, SQLite volume, healthcheck)
rust:1.99-slim build, debian-slim runtime as uid 10001. Only static/
and content/ shipped alongside the binary; DB lives on /data volume.
Could not build-verify locally (no Docker daemon); paths checked
against ServeDir/include_str usage instead.
2026-10-12 23:58:34 +05:30
dev
dc754fe996 Student sign-in UX, gzip, landing stats cache
Sign-in page rewritten for non-technical students: Google-first when
configured, plain-language email path with honest 30-day scope, recovery
note, placeholders, full-width CTA. deploy/termux-start.sh sources .env
for GOOGLE_* credentials; deploy/env.example documents the 5-minute
Cloud Console setup; .gitignore covers secrets, DBs, pid/log files.
bench scripts send a browser UA so Cloudflare bot checks stop 403ing
local load tests. Landing bank counts cached 60s (five aggregate
subselects no longer run per hit). gzip compression on all responses.
2026-10-12 23:33:33 +05:30
dev
c4080976bc Deploy artifacts: Termux service scripts plus tunnel config
deploy/termux-{start,stop,status}.sh manage the release binary on the
tablet; deploy/cloudflared-whaleprep.yml is the dedicated tunnel config
for whaleprep.oiupoyt.space. README gains a deploy section.
2026-10-12 22:26:33 +05:30