Back to blog

Odoo Hosting in 2026: How to Run Odoo on Your Own VPS the Right Way

IM Host EditorialOctober 3, 20264 min read
Odoo Hosting in 2026: How to Run Odoo on Your Own VPS the Right Way

Odoo can run your entire business: accounting, inventory, sales, HR, website and more. That also means downtime or slowness in Odoo stops real work. Teams that self-host Odoo on a VPS get full control over modules, data location and cost, but they need a setup that is sized correctly, secured and backed up. This guide covers the essentials for running Odoo in production on your own server.

Self-hosted VPS or a managed Odoo platform?

Odoo offers its own hosted platforms, and they are a good fit for companies that want Odoo to handle the infrastructure. Self-hosting on a VPS makes sense when you want:

  • Full control over custom and third-party modules, including modules from the community.

  • Your data in a specific country, for example in Egypt for local customers, or in the EU for European clients.

  • Direct database access for reporting, integrations and BI tools.

  • Predictable infrastructure cost as users and companies grow.

How much server does Odoo need?

Odoo's performance depends on concurrent users, installed modules, data volume and scheduled jobs. Practical starting points:

  • Up to about 15 to 20 active users: 4 vCPU and 8 GB RAM.

  • Around 50 active users or heavy manufacturing and inventory use: 8 vCPU and 16 GB RAM or more.

  • Large deployments: move PostgreSQL to its own server and scale Odoo workers separately.

Fast NVMe storage is essential, because PostgreSQL is at the center of everything Odoo does. A Cloud VPS with dedicated vCPU and RAM avoids slowdowns caused by other tenants; a Linux VPS is a good fit for smaller teams.

Step 1: Install Odoo and PostgreSQL

Use a supported Ubuntu LTS release, install PostgreSQL, create a dedicated database user for Odoo, and install Odoo either from the official packages or from source in a Python virtual environment. Run Odoo as its own system user, never as root.

Step 2: Configure workers and limits

By default Odoo runs in a single-process mode that is fine for testing but not for production. Enable multi-processing with workers in odoo.conf:

[options]
proxy_mode = True
workers = 5
max_cron_threads = 1
limit_memory_soft = 2147483648
limit_memory_hard = 2684354560
limit_time_cpu = 600
limit_time_real = 1200
db_host = localhost
db_user = odoo
list_db = False
admin_passwd = a-long-random-master-password
  • workers: Odoo's documentation suggests roughly (CPU cores x 2) + 1 as an upper bound, then adjust based on available RAM.

  • Memory limits: recycle workers that grow too large, protecting the server from runaway reports or imports.

  • list_db = False: hides the database manager page, which should never be public.

  • admin_passwd: the master password for database operations. Make it long and keep it in a password manager.

Step 3: Put Nginx in front with HTTPS

Run Nginx as a reverse proxy with a Let's Encrypt certificate. Forward normal traffic to Odoo's HTTP port and the live-update traffic to the separate port Odoo uses for real-time features (the /websocket path in recent versions). Set proxy_mode = True so Odoo trusts the forwarded headers. Increase the proxy timeouts and client body size if users import large files.

Step 4: Back up the database and the filestore

An Odoo backup has two parts, and you need both:

  1. The PostgreSQL database, dumped with pg_dump.

  2. The filestore, the directory where Odoo keeps attachments, invoices and images.

Back up daily, keep several days of history off the server, and test a restore into a staging database. A database without its filestore is missing every document your team ever attached.

Step 5: Staging before upgrades

Module updates and version upgrades change data structures. Restore a copy of production into a staging instance, run the update there, test the critical flows such as invoicing, stock moves and payroll, and only then upgrade production during a quiet hour.

Step 6: Security essentials

  • Firewall: allow only SSH, HTTP and HTTPS. Never expose PostgreSQL or Odoo's internal ports.

  • SSH keys only, plus two-factor authentication for Odoo users with admin rights.

  • Keep the OS, PostgreSQL and Odoo patched.

  • Review which users have access to accounting and HR data.

Run Odoo on IM HOST

IM HOST Cloud VPS and Linux VPS plans give you full root access and NVMe storage in the US, UK, Poland, Germany and Egypt, so you can keep your ERP data close to your team and your customers. Cloud VPS includes a free automatic backup every 72 hours for the length of your subscription, a useful extra safety layer next to your own Odoo backups.

More from our blog

Discover more practical guides and product insights from the IM Host team.

View all articles