3.3 KiB
3.3 KiB
Phase 15 release checklist
Use this checklist for a Virtualmin-managed VPS deployment. A checked item is evidence, not an assumption; record the owner, timestamp, commit, image digests, and backup ID in the release record.
Go/no-go prerequisites
- Reviewed commit and release owner approved; previous image pair and configuration revision are retained for rollback.
- Patched Linux host has Docker Engine and Compose v2, sufficient CPU/RAM/disk, restricted Docker access, host firewalling, and a protected deployment directory outside public web roots.
- Virtualmin/DNS points to the host; HTTPS certificate, renewal monitoring, reverse proxy, and maintenance route are tested.
- API exposure is restricted to the required private path/host; only the intended web entry point is public.
- Production environment values are injected from a protected secret store/environment.
.envis untracked, mode0600, and contains no committed or logged secrets. - Bootstrap admin values, if needed, are supplied together, used once, removed immediately, and the password is rotated.
AUTOMATED_OUTREACH_ENABLED=falseis verified in rendered Compose. - Encrypted off-host backup destination, retention schedule, legal-hold owner, monitoring destination, and incident/rollback owner are confirmed.
Validate, deploy, and verify
docker compose config --quietpasses; rendered configuration was reviewed without exposing secret values.- Images build from the reviewed commit, are scanned, and their digests are recorded.
- Backup is taken before release/schema change; checksum/manifest is verified.
- Backup restores into an isolated volume/environment;
PRAGMA integrity_check, foreign-key checks, representative row counts, tenant-scoped reads, and API tests pass. Schema/migration result is recorded. docker compose up -dcompletes and both services reporthealthy; running is not accepted as ready.curl -fsS https://<host>/healthzand the API liveness/readiness endpoints pass (/api/v1/health/live,/api/v1/health/ready). These checks do not replace authenticated smoke tests.- Authenticated smoke tests cover login, tenant-scoped list/detail/child access, a safe mutation/audit readback, and cross-tenant non-disclosure.
- Monitoring sees health/restarts, API errors/latency, disk and
/datapressure, auth failures, backup age/failure, TLS expiry, migration failures, and unexpected egress without collecting secrets or full contact data. - No outbound provider/send/SMTP activity is present; unexpected egress is treated as an incident.
Retain and sign off
- Release record contains commit, image digests, non-secret config fingerprint, schema/migration result, backup ID, test output, approver, and rollback decision.
- Data, audit/source lineage, logs, and backup retention/deletion rules are applied; legal holds are preserved.
- Rollback path was reviewed: restore the prior compatible image/config first, stop writes if needed, and restore data only after compatibility approval. Do not use
docker compose down -von a data-bearing host. - Known limitations are accepted explicitly: no Virtualmin/TLS/DNS provisioning, only SQLite-level readiness, no standalone migration/backup CLI, SQLite/in-process worker only, no PITR/HA, and no production egress isolation.