Migrate Central from one server to another

The best procedure is to take a whole machine snapshot of the old machine and restore it to a clone. Test the migration and upgrade progress on that clone. Make note of the steps you take. Once you are convinced the process works, do it again for practice, then do it again for real.

If you are changing hostnames (e.g., mycentral.example.com to odk.foo.com), I find the best way to guarantee transparent migration is to redirect the DNS of the old hostname to the new server's IP. Then manually add the old hostname to Central's nginx config.

https://github.com/getodk/central/blob/master/files/nginx/odk.conf.template#L3 will then look like...

server {
  listen 443 ssl;
  server_name ${CNAME} mycentral.example.com;