Skip to content
Guides

Odoo on Google Cloud: a practical guide

Google Cloud's Compute Engine runs Odoo well, but a few defaults catch people out: the external IP, the email ports and the discount rules. Here is how to choose a machine type, zone, disk and network setup that works from day one.

Key takeaways

  • An e2-standard-2 (2 vCPUs, 8 GB) is a sensible start for a small team. Move to N2 when Odoo is busy all day.
  • A default external IP is ephemeral and can change when the VM stops. Promote it to a static IP before you point your domain at it.
  • Compute Engine blocks outbound port 25. Send Odoo email through Google Workspace or another provider on port 587 or 465.
  • Disk snapshots are useful, but keep Odoo database backups in Cloud Storage as well.

When Google Cloud is the right home for Odoo

Google Cloud is rarely the cheapest place for a single Odoo server. Simpler providers such as DigitalOcean or Hetzner usually cost less for the same CPU and memory. Google Cloud makes sense when:

  • Your company already has a Google Cloud organization, with billing, IAM and security policies in place.
  • Odoo needs to sit next to other Google Cloud systems, such as BigQuery for reporting or services that run on Cloud Run.
  • You use Google Workspace and want one vendor for email, identity and hosting.
  • You have credits or a committed spend with Google that changes the price comparison.

If none of these apply, compare the total cost with our guides to Odoo on DigitalOcean and running Odoo on Hetzner first.

Choosing a Compute Engine machine type

Machine type names follow a pattern: the series, the shape and the vCPU count. In n2-standard-4, N2 is the series, "standard" means 4 GB of RAM per vCPU, and 4 is the number of vCPUs. "highmem" shapes have 8 GB per vCPU. For Odoo, two series cover nearly every case.

E2: cost-optimized, the usual start

E2 machine types are Google's lower-cost general purpose VMs. An e2-standard-2 (2 vCPUs, 8 GB) or e2-standard-4 (4 vCPUs, 16 GB) runs a small or mid-sized Odoo database comfortably. The e2-medium (2 vCPUs, 4 GB) is a shared-core type: it shares a physical core and bursts for short periods, so keep it for test databases and very small teams.

N2: steady performance for busy databases

N2 machine types run on newer processors with more consistent performance. Pick them when Odoo is used all day by many people, or when heavy reports and scheduled actions keep the CPU busy. n2-highmem-4 (4 vCPUs, 32 GB) suits a large database with PostgreSQL on the same VM.

How much VM does Odoo need?

Odoo's rules of thumb are up to (CPU cores × 2) + 1 workers, about six concurrent users per worker, and roughly 325 MB of RAM per worker, plus room for PostgreSQL and the operating system. As a starting point:

  • 2 vCPUs, 8 GB: a small team of up to about 30 concurrent users.
  • 4 vCPUs, 16 GB: up to about 50 concurrent users, or heavier apps such as Manufacturing or a busy website.
  • 8 vCPUs, 32 GB: larger teams, real eCommerce traffic or several databases on one server.

Our Odoo workers and server sizing guide has the memory limits and PostgreSQL settings for each size. You can change the machine type of a stopped VM later, so start small and grow with real usage.

Choosing a region and zone

A Compute Engine VM lives in one zone, such as europe-west3-a, inside a region (Frankfurt, in this case). Choose the region closest to most of your users: every click in Odoo is a round trip to the server. Any zone in that region is fine for a single server.

If personal data has to stay in the EU, choose an EU region, and read our guide to Odoo data residency and GDPR. Keep backup buckets in a matching location too.

Disks, snapshots and backups

A balanced persistent disk (pd-balanced) is a good default for Odoo: SSD storage at a moderate price. 50 GB covers the operating system, Odoo and a small database with its filestore. You can grow a disk later without recreating the VM, but you cannot shrink it.

Compute Engine can take disk snapshots on a schedule. They are a quick way to roll back the whole server after a failed upgrade. They are not a complete Odoo backup plan on their own, because restoring one replaces the whole disk, not a single database. Also keep:

  • Database backups with the filestore, so you can restore one database or copy it to staging.
  • An offsite copy in Cloud Storage, ideally in a separate bucket with its own access rules.
  • A tested restore, so you know how long recovery really takes.

Our Odoo backup strategy guide explains how to combine these.

External IP: ephemeral or static

By default, a new VM gets an ephemeral external IPv4 address. It stays the same while the VM runs, but it can change if you stop and start the VM. Your domain's DNS points at that address, so a change takes Odoo offline until you update DNS.

The fix is simple: in VPC network → IP addresses, promote the ephemeral address to a static one. The VM keeps the same IP, and Google reserves it for your project until you release it. A static address is billed, including while the VM is stopped, so release it when you delete the server.

Email: port 25 is blocked

According to Google's guide to sending email from a Compute Engine instance, outbound connections on port 25 to destinations outside your network are blocked (as of October 2026). Ports 587 and 465 are not restricted, so Odoo can send through any provider that accepts mail on those ports:

  • Google Workspace, through its SMTP relay service or a mailbox account, if your company already uses it.
  • A transactional email provider, which is a better fit for large volumes and newsletters.

Publish SPF, DKIM and DMARC records for your sending domain either way. Our guide to configuring email for self-hosted Odoo covers the DNS records, the alias domain and incoming mail.

Firewall rules on Google Cloud

Google Cloud firewall rules belong to the VPC network, not to the VM. A rule applies to the VMs that carry its network tag. For an Odoo server, allow inbound SSH, HTTP and HTTPS to a tag such as odoo, and nothing else. Do not open PostgreSQL's port 5432 or Odoo's port 8069 to the internet; Nginx should handle HTTPS in front of Odoo.

Limit SSH where you can, for example to your office IP range, and use SSH keys instead of passwords. Our Odoo security hardening checklist covers the Odoo side.

Understanding the Google Cloud bill

An Odoo server on Google Cloud has several billed parts:

  • The VM, for the time it runs, priced by machine type and region.
  • The persistent disk, by size and type, even while stopped.
  • The external IPv4 address.
  • Outbound traffic to the internet. A typical Odoo server sends little data.
  • Snapshots and Cloud Storage for backups.

Discounts follow their own rules. N2 VMs get sustained use discounts automatically when they run for most of the month; E2 VMs do not, but they start from a lower price. Both can get committed use discounts for a one- or three-year commitment. Check current prices for your region on Google's pricing page, and remember that your team's time counts too: our Odoo hosting cost guide compares the options.

Doing it yourself or with a platform

You can build all of this yourself: create the VM, install Odoo, PostgreSQL and Nginx, set up HTTPS, backups and monitoring, and keep it patched. Teams with Google Cloud and Linux experience often do. If you would rather not run servers at all, Odoo Online or Odoo.sh host Odoo for you on Odoo's own infrastructure.

How CloudPilot runs Odoo on Google Cloud

CloudPilot connects to your Google Cloud project with a service account key and creates Odoo servers there. The servers stay on your Google Cloud bill.

  • A curated list of machine types from the E2 and N2 series, from 2 to 8 vCPUs and 4 to 32 GB of RAM. Compute Engine's API has no list price, so check prices on Google's pricing page.
  • Every zone that is up, labelled with its city.
  • Ubuntu 24.04 on a 50 GB balanced persistent disk, on your default network, with one firewall rule that opens SSH, HTTP and HTTPS to tagged CloudPilot servers only.
  • Hardened by default: SSH password logins are off, fail2ban blocks brute-force attempts and security updates install automatically.
  • Backups to your own Google Cloud Storage bucket, S3, Azure Blob Storage or SFTP, plus staging with email neutralized, Git deploys, custom domains with SSL, and monitoring with alerts.

The server gets an ephemeral external IP, so promote it to static as described above if you plan to stop the VM. Connecting your own Google Cloud project is part of the Pro and Business plans. See Odoo hosting on Google Cloud for an overview, managed Odoo hosting for what CloudPilot looks after, and pricing for each plan.

Odoo on Google Cloud: questions

Which Compute Engine machine type should I use for Odoo?

An e2-standard-2 (2 vCPUs, 8 GB) suits a small team, and an e2-standard-4 a mid-sized one. Move to N2 when Odoo is busy all day, and to a highmem type for a large database with PostgreSQL on the same VM.

Why did my Odoo server's IP address change?

A default external IP on Compute Engine is ephemeral and can change when the VM is stopped and started. Promote it to a static IP in VPC network, IP addresses, so your domain keeps pointing at Odoo.

Can Odoo send email from Google Cloud?

Yes, but not on port 25, which Compute Engine blocks. Use Google Workspace or an email provider on port 587 or 465, and publish SPF, DKIM and DMARC records for your domain.

Keep reading

Run Odoo on your own cloud

Deploy, back up and monitor Odoo on AWS, Google Cloud, Azure, Hetzner or any server. Plans from $19 a month.