Cloudflare Workers
Free tier costs nothing to run: 100k requests/day, 5 million D1 rows read/day, 100k rows written/day, and 5 GB of storage.1
Create the database
database_id into wrangler.toml.2
Set secrets
3
Deploy
Docker
For any VPS. One volume holds the SQLite database.JWT_SECRET (required), SETUP_TOKEN, KEYGEN_PASSWORD, DATABASE_PATH (default /data/cms.db), and PORT (default 3000).
For off-site backups on a VPS, add a Litestream sidecar that streams the SQLite file to any S3-compatible bucket.