How would you downgrade a Digital Oceans virtual server?
Your best route is to backup your discourse instance via admin dashboard, destroy the old droplet, launch new droplet, restore.
Or snapshot your current droplet, destroy it, create a disk from the snapshot, then attach the disk to a new downgraded droplet.
Don’t forget to downgrade the shared_buffers and unicorns in your app.yml accordingly.
There are more way to do this.
You can do this in the DigitalOcean droplet panel. On the Resize tab.
After you set up the new parameters change the app.yml file like this
The other way is create a new droplet. It is usefull if you want to change location or you want to downgrade the disk space also.
I’m not recommend to destroy the old droplet immediately. Just keep it while the new droplet run successfully.
- Create a snapshot from the old droplet.
- Turn off the old droplet.
- Create a new droplet.
- Change domain dns to the new droplet ip.
- Restore snapshot to the new droplet.
- Wait while the domain dns change to the new droplet ip.
- Change app.yml like above.
- Rebuild app.
- Test your site.
- If everything work. Destroy old droplet.
You can use a floating IP to avoid any downtime switching droplets.
That’s what I’d do, as it means your don’t have to wait for dns for the transition.
See Move your Discourse Instance to a Different Server. You can copy over the let’s encrypt certificate for zero downtime.
After you set up the new server, put the old one in read only mode, backup, restore to the new server, switch the ip to the new one.
You can save some time by using rsync to move the assets and doing a database only backup. Also, you can save the step of moving the backup if you backup to S3. Spaces is totally fine for backups.