Production checklist
Work through this list before you put real traffic on a 5050cloud install.
Host
- Use a non-burstable VM size with enough RAM for every service plus about 1 GB for 5050cloud itself.
- Attach a blank data disk before installing; the installer uses it for all state (
--data-disk auto). See Install options. - Keep unattended security updates on (the default). Plan reboots: see Upgrading and host maintenance.
- Turn on the firewall with
--firewall, or allow only SSH, 80, 443 and UDP 51820 between hosts in your cloud firewall. See Ports and firewall.
Backups
- Store the recovery key from
/etc/5050/recovery-key.txtin a password manager. Without it, backups cannot be decrypted. - In Settings > Backups, set an S3-compatible bucket and select Test connection. Use a separate retention key and turn on bucket versioning. See Backups and restore.
- Check that every database shows backups on, not the "Backups off" badge.
- With a bucket set, the control plane state streams to it continuously. See Backing up the control plane.
Domains and HTTPS
- Use your own domain with a wildcard A record (
--domain) so names do not depend on your IP. - Add custom domains and wait for Active. See Custom domains and HTTPS.
- Behind Cloudflare, set SSL/TLS mode to Full (strict). See Behind Cloudflare.
Services
- Set a health check path for every web service. See Health checks.
- Run 2 replicas for web services that must not drop requests during deploys. See Replicas and zero-downtime deploys.
- Set memory limits so one service cannot starve the rest.
- Turn on Use all cores for single-process runtimes such as Node. See Use all cores.
- Put database migrations in a pre-deploy command. See Pre-deploy migrations.
People and alerts
- Configure SMTP so password resets and alerts reach you. See Email and notifications.
- Require 2FA for everyone in Settings > Members. See Members, roles and 2FA.
- Add monitors for CPU, memory, disk and 5xx rate. See Monitors and alerts.
Resilience
- Read the Honest limits.
- With a second host, join it with
--roles app,ingressand put both IPs behind DNS failover or a load balancer. See Add a host. - Practise rebuilding the control host once on a spare VM.