Skip to main content

Production deploy

The long form is splick-backend/docs/deploy-production.md. This page is the map. It names steps and files. It does not copy hostnames, passwords, or key paths.

One-time on the operator machine​

Docker, JDK 21, deploy.env, .env.prod, and an SSH key to the VPS. Cloudflare DNS A records for api and grafana point at the VPS. SSL mode in front of the VPS is the Cloudflare setting already chosen for that zone (the runbook describes Flexible to the origin). Confirm the current mode in Cloudflare before you change it.

Cases​

CaseSequence
Fresh VMmanage.sh mac-sync, on the VPS setup-new, then mac-deploy, then verify
Snapshot restoreUpdate IP and DNS, mac-sync, setup-snapshot, deploy, verify
IP replaceUpdate Cloudflare and SPLICK_SERVER, sync, setup, deploy, verify, optional WAL-G restore from R2
Daily releasemake manage-local release (publish images and deploy) or manage.sh deploy on the VPS

After deploy​

verify checks health. Watch HighErrorRate5xx and OutboxLagHigh for 15 minutes. A schema migration that fails Flyway stops that service; fix forward with a new migration, do not edit a shipped version.

Ops shell on the VPS is make manage-remote. Monitoring comes up when ENABLE_MONITORING is enabled. Backups: manage.sh backup.

Website and mobile store binaries do not redeploy when only the API VM changes.