mirror of
https://github.com/screentinker/screentinker.git
synced 2026-08-13 13:53:12 -06:00
The README covers installing, upgrading, backing up and admin recovery -- the
happy paths. It says nothing about the parts that actually go wrong: which
deployment shape you are on and why the other shape's commands silently do
nothing, how to tell a deploy really took when a version string cannot prove it,
and the handful of traps that have each cost real time at least once.
docs/operations.md is that runbook. The load-bearing entries:
- the served APK is a bind-mounted FILE, so it must be replaced in place. mv
or cp gives the host a new inode while the container keeps serving the old
bytes, with nothing in any log to say so;
- the advertised apk_size must equal the served bytes or displays download,
reject and retry forever -- and the OTA query parameter is `version`, where
the wrong name produces a result that looks identical to a broken OTA;
- a version string does not prove new code is running, and neither does the
build hash: it covers the frontend, so a server-only change deploys with an
unchanged hash and looks exactly like a stale image;
- ownership before checkout, because a partial checkout leaves VERSION updated
while the code is the old release and no migrations ran;
- a service user with no home directory makes npm install nothing while
appearing to succeed;
- a prerelease sorts below its own release, and the Android update check
offers one to any older client on the stable channel;
- native modules are built for one Node ABI, and the mismatch presents as
hundreds of unrelated test failures rather than one clear error.
Deliberately generic: no addresses, hostnames, customer names or credentials, so
it is useful to anyone self-hosting rather than a description of one estate.
Every claim was checked against the code or the workflows rather than recalled.
|
||
|---|---|---|
| .. | ||
| 104-draft-preview-build-plan.md | ||
| 109-android-pip-visibility.md | ||
| 134-device-reporting.md | ||
| 146-hardening-fallout.md | ||
| 146-hardening-plan.md | ||
| 148-android-duplicate-socket-fix.md | ||
| 148-connection-lifecycle-analysis.md | ||
| 148-half-open-fix.md | ||
| 148-mass-disconnect-analysis.md | ||
| 148-server-eviction-storm-analysis.md | ||
| android-troubleshooting.md | ||
| billing-authz-plan.md | ||
| billing.md | ||
| device-owner-provisioning.md | ||
| local-ai-setup.md | ||
| maintenance-device-status-log.md | ||
| multi-tenancy-design.md | ||
| openapi.yaml | ||
| operations.md | ||
| player-parity.md | ||
| seo-directory-listings.md | ||
| sso-setup.md | ||