Key takeaways
- A Basic Droplet with 2 vCPUs and 4 GB of RAM is a sensible start for a small company. Move to General Purpose when Odoo is busy all day.
- DigitalOcean's own backups are a snapshot of the whole Droplet. Keep database backups off the Droplet as well.
- SMTP ports are blocked on new Droplets, so send Odoo email through an email provider's API or relay.
- The Droplet price covers CPU, RAM, disk and a transfer allowance. Backups, snapshots and extra volumes cost extra.
Why run Odoo on DigitalOcean
DigitalOcean's virtual servers are called Droplets. They have a fixed monthly price that includes CPU, memory, an SSD disk and an outbound transfer allowance, so the bill is easy to predict. The control panel is simple, and there are regions in North America, Europe, Asia and Australia.
That makes DigitalOcean a good fit when:
- You want one or a few Odoo servers, not a whole cloud architecture.
- A predictable monthly price matters more than per-second billing or deep discounts.
- Nobody on the team is a cloud specialist. There are far fewer services and settings to learn than on AWS or Azure.
If your company already runs on AWS, read our guide to Odoo on AWS. If you need the lowest price per GB of RAM in the EU, compare with our guide to running Odoo on Hetzner.
Choosing a Droplet plan for Odoo
DigitalOcean groups Droplets into plans. As of October 2026, these are the ones that matter for Odoo (see DigitalOcean's guide to choosing a Droplet plan):
Basic: shared CPU, for small databases
Basic Droplets share physical CPU cores with other customers. DigitalOcean describes them as best for bursty workloads with low to medium load, which is how a small Odoo database behaves: quiet most of the day, with short busy moments when someone runs a report or confirms a batch of orders. They are also the cheapest plan, which makes them a natural start for 5 to 20 users.
General Purpose: dedicated CPU, the safe step up
General Purpose Droplets have dedicated vCPUs and about 4 GB of RAM per vCPU. Pick them when Odoo is in use all day, when many people work at the same time, or when slow pages on a Basic Droplet line up with high CPU use. Performance stays steady because no other customer shares your cores.
CPU-Optimized and Memory-Optimized
CPU-Optimized Droplets have dedicated vCPUs with about 2 GB of RAM per vCPU. They suit compute-heavy work but are usually short on memory for Odoo, whose workers and PostgreSQL both want RAM. Memory-Optimized Droplets have 8 GB per vCPU and make sense for a large database that runs PostgreSQL on the same server.
How much Droplet does Odoo need?
Odoo's own rules of thumb are a good guide: up to (CPU cores × 2) + 1 workers, each serving about six concurrent users, and roughly 325 MB of RAM per worker, plus room for PostgreSQL and the operating system. In practice:
- 2 vCPUs, 4 GB RAM: up to about 30 concurrent users with typical apps. A good start for a small company.
- 4 vCPUs, 8 GB RAM: up to about 50 concurrent users, or a smaller team with heavy apps such as Manufacturing or a busy website.
- 8 vCPUs, 16 GB RAM or more: larger teams, eCommerce with real traffic, or several Odoo databases on one server.
Do not go below 2 GB of RAM: Odoo, PostgreSQL and module upgrades will run out of memory. The worked numbers, memory limits and PostgreSQL settings for each size are in our Odoo workers and server sizing guide.
Resizing is not hard. You can power the Droplet off and resize it to a larger plan from the control panel. A resize that only adds CPU and RAM can be undone later; one that also grows the disk cannot, because disks do not shrink. So starting small and growing is usually cheaper than guessing big.
Choosing a region
Pick the region closest to most of your users. Odoo is an interactive app, and every click is a round trip to the server, so latency matters more than it does for a static website. A company in Germany will feel the difference between Frankfurt and New York.
Also check where your data has to live. If you need to keep personal data in the EU, choose an EU region and read our guide to Odoo data residency and GDPR. The region cannot be changed in place later: moving means a snapshot or backup restored to a new Droplet, and a DNS change.
Backups, snapshots and offsite copies
DigitalOcean gives you two ways to copy a Droplet. As of October 2026:
- Droplet backups are automatic images of the whole server. Weekly backups cost 20% of the Droplet's price and daily backups 30%.
- Snapshots are images you take on demand, billed per GB per month. They are handy before an upgrade or a risky change.
Both are useful for rebuilding a server, but neither is a full Odoo backup plan. They copy the disk as it was at one moment, they live in the same DigitalOcean account, and restoring one replaces the whole server rather than one database. For Odoo, you also want:
-
Database backups with the filestore, taken by Odoo or
pg_dump, so you can restore one database or copy it to staging. - An offsite copy outside the Droplet, for example in DigitalOcean Spaces, another provider's S3-compatible bucket, or an SFTP server.
- A restore you have tested, so you know how long it really takes.
Our Odoo backup strategy guide explains how to combine these.
Email: SMTP ports are blocked
To fight spam, DigitalOcean blocks SMTP ports 25, 465 and 587 on Droplets by default. If you set Odoo to send through an SMTP server on one of those ports, the connection simply times out. There are two common fixes:
- Use an email provider with an HTTP API or a relay on a port that is not blocked. Many providers offer port 2525 for this reason.
- Ask DigitalOcean support to lift the block. Whether they do depends on your account.
Either way, sending through a dedicated email provider is better for deliverability than sending straight from the Droplet's IP. Our guide to configuring email for self-hosted Odoo covers SPF, DKIM, DMARC and incoming mail.
Firewalls and security on DigitalOcean
DigitalOcean Cloud Firewalls are free and filter traffic before it reaches the Droplet. For an Odoo server, allow inbound SSH, HTTP and HTTPS, and block everything else, including PostgreSQL's port 5432 and Odoo's own port 8069. Odoo should sit behind a reverse proxy such as Nginx that handles HTTPS.
Inside the server, turn off SSH password logins, use SSH keys, install security updates automatically and limit brute-force attempts with a tool like fail2ban. Our Odoo security hardening checklist covers the Odoo side, such as the database manager and the master password.
Understanding the DigitalOcean bill
The Droplet price is most of the bill, but a few items are added on top. As of October 2026:
- The Droplet, billed for the time it exists, up to a monthly cap. The price depends on the plan and size; see DigitalOcean's pricing page for current numbers.
- Backups: 20% (weekly) or 30% (daily) of the Droplet price if you turn them on.
- Snapshots, billed per GB stored per month.
- Block storage volumes, if the filestore outgrows the Droplet's disk.
- Outbound transfer above the Droplet's allowance. Inbound traffic is free, and a typical Odoo server stays well inside its allowance.
Remember that the server is only part of the cost of running Odoo. Your time for updates, backups and fixes counts too. Our Odoo hosting cost guide compares the total cost of each option.
Doing it yourself or with a platform
You can build all of this yourself: create the Droplet, install Odoo, PostgreSQL and Nginx, set up HTTPS, backups, monitoring and updates, and keep it patched. Our guide to self-hosting Odoo Community walks through the manual install. If you want your own DigitalOcean server without maintaining it by hand, a control panel does the server work for you.
How CloudPilot runs Odoo on DigitalOcean
CloudPilot connects to your DigitalOcean account with a personal access token and creates Odoo servers there. The Droplets stay on your DigitalOcean bill.
- Sizes with at least 2 GB of RAM, as DigitalOcean lists them for your account, with DigitalOcean's monthly price next to each.
- Every available region that supports the features CloudPilot needs.
- Ubuntu 24.04 with IPv6, hardened by default: SSH password logins are off, fail2ban blocks brute-force attempts and security updates install automatically. The CloudPilot agent opens no ports, so a Cloud Firewall that allows only SSH, HTTP and HTTPS works as is.
- Backups with retention and offsite copies to S3-compatible storage such as DigitalOcean Spaces, Azure Blob Storage, Google Cloud Storage or SFTP.
- Staging with email neutralized, Git deploys, custom domains with SSL, and monitoring with alerts.
Connecting your own DigitalOcean account is part of the Pro and Business plans. See Odoo hosting on DigitalOcean for an overview, managed Odoo hosting for what CloudPilot looks after, and pricing for each plan.
Odoo on DigitalOcean: questions
What size Droplet do I need for Odoo?
A Basic Droplet with 2 vCPUs and 4 GB of RAM handles about 30 concurrent users with typical apps. Move to 4 vCPUs and 8 GB, or a General Purpose Droplet, when more people work at once or Odoo is busy all day.
Why can't Odoo send email from my Droplet?
DigitalOcean blocks SMTP ports 25, 465 and 587 on Droplets by default. Send through an email provider's API or a relay on another port, such as 2525, or ask DigitalOcean support to lift the block.
Are DigitalOcean backups enough for Odoo?
They help you rebuild the whole server, but they stay in the same account and cannot restore one database. Also keep Odoo database backups with the filestore in offsite storage, and test a restore.