Users discuss downgrading a DigitalOcean (DO) server from 2GB to 1GB for a Discourse installation. Brandon007 initiates the thread, seeking steps to downgrade, suspecting a rebuild may be needed. Canapin cautions that 1GB is the bare minimum and suggests contacting DO directly; they note that Discourse’s app.yml configures resources like UNICORN_WORKERS based on server specs, and recommend rebuilding on a new droplet for simplicity, advising to save app.yml for reuse. merefield provides a detailed 12-step migration guide: create a new VPS, backup the site, copy app.yml, repoint DNS or IP, install Docker, rebuild Discourse using the old config, create an admin account, restore the backup, verify functionality, and delete the old server. Ed_S adds that DO allows seamless RAM resizing without changing storage or IP — but storage size cannot shrink, so downgrading storage requires backup/restore. Brandon007 confirms the need for a new server and shares helpful external links for migration and CLI restore. curiositry appreciates the checklist and suggests adding ./launcher enter app between steps 8 and 9 for smoother execution. Overall, the consensus is that while DO allows RAM resizing, a full migration with backup/restore is safest and most reliable for downgrading, especially if storage changes are involved.
When I initially setup my install, I was under the impression that I needed a 2GB server. Apparently, that’s not the case from additional reading since then. What steps are involved in downgrading on Digital Ocean?
I’m hoping I can just select a new plan and then rebuild Discourse…
1 GB is the very minimum. I’m not sure what a difference between 1 and 2 will make for a small community, though. Personally, I’d prefer to be careful and not stick to the strict minimum.
For the server’s downgrade, I’d advise asking DO directly.
When you build Discourse, it configures some stuff depending on the server’s specs in app.yml.
Typically:
## How many concurrent web requests are supported? Depends on memory and CPU cores.
## will be set automatically by bootstrap based on detected CPUs, or you can override
UNICORN_WORKERS: 4
I don’t know if it automatically changes the value when we rebuild, or if there’s something more manual to do.
In any case, deploying a new droplet and reinstalling Discourse is so easy and fast, it should be troubleless. Just keep a copy of your app.yml somewhere to easily get some useful info (email provider info, plugin list, etc) if you reinstall.
Worth noting, if the local storage size remains the same, one can seamlessly resize a droplet to have more or less RAM. But storage size can not shrink, so to move to a droplet with less storage would mean a backup and restore.
In any case, before any migration, I would take a backup and download it.
I have in the case of DO migrated up and down with RAM, and indeed I think I’ve done the same with Hetzner. The local storage and IP address stay the same, just a few minutes downtime.
Essentially, it looks like I need to build a new server, no easier way around it. Then, I’ll need to stare and compare my app.yml file, then upload the backup file. Finally, repoint IPs.
After reading your replies, I found some other useful tips since I have to go this route.