ERPixel insights

Odoo 19 Server Requirements: CPU, RAM, Storage and Workers

odoo server requirements on premise

For an initial Odoo 19 production estimate, the planning ranges below start at 4 CPU cores and 8 GB RAM for a small team, and 6–8 cores with 16–32 GB RAM for a team of up to 50. These are ERPixel planning ranges, not official capacity guarantees. Size the system for concurrent activity, installed apps, reports, imports, integrations and data growth.

Start with the hardware table, then check workers, storage and recovery requirements. A registered user count is not the number of people sending requests at the same time. A test installation and a business-critical production system also have different needs.

Updated Odoo Server Hardware Requirements

Odoo 19 system requirements: the official source-install documentation specifies Python 3.10 or later and PostgreSQL 13 or later. These are compatibility minimums, not recommended production versions. PostgreSQL 13 reached end of support in November 2025; choose a maintained PostgreSQL version and validate the complete stack with your modules. PostgreSQL 15 remains supported in 2026. The official Odoo 19 Debian package targets Ubuntu 24.04 LTS; source installations require their own dependency checks. PDF reports with headers and footers require the documented wkhtmltopdf 0.12.6 package.

Enterprise uses the Community server with additional Enterprise add-ons. Size the server for the apps and workload you actually run; the edition name alone does not determine CPU or RAM. Sources: Odoo 19 source installation, packaged installation, and PostgreSQL version support.

Recommended planning ranges: the user bands below refer to team size, not simultaneous requests. They assume routine business activity; imports, manufacturing calculations, large reports, ecommerce traffic, and integrations can change the requirements substantially. For a single server, RAM must cover Odoo, PostgreSQL, and the operating system. For separate servers, size each role independently.

CriteriaUp to 10 UsersUp to 50 UsersMore than 50 Users
CPU4 cores6–8 cores8–16 cores
RAM8 GB16–32 GB32–64 GB
Storage (SSD)50 GB100–160 GB200+ GB
DatabasePostgreSQL 15+PostgreSQL 15+PostgreSQL 15+
Operating SystemUbuntu 24.04 LTSUbuntu 24.04 LTSUbuntu 24.04 LTS
NotesUse SSD, regular backups, performance monitoringConsider separate app and DB servers if measurements justify itAssess workload, availability targets, and scaling needs

✅ Tip: Treat 20% spare storage as an initial buffer, not a complete capacity plan. Budget separately for PostgreSQL, the filestore (attachments and documents), logs, temporary files, retained backups, and staging copies. Adjust headroom to measured growth and retention requirements.

✅ Tip: Monitor continuously with alerts and review capacity regularly. Investigate sustained memory pressure, swap activity, worker restarts, slow requests, and disk latency before deciding which resource to upgrade; RAM utilization alone is not enough.


Odoo Workers and Concurrent Users

Count concurrent activity separately from licensed or registered users. Odoo 19 documents approximately six concurrent users per worker and a CPU-based rule of thumb of (CPU × 2) + 1 workers. These are initial estimates, not performance guarantees. Cron jobs also need CPU; reports, imports, and custom code can consume much more memory than light interactive requests.

Use the production multiprocessing mode on Linux with worker and memory limits suited to the workload. Budget PostgreSQL and operating-system memory separately from Odoo worker memory. Load-test representative workflows and monitor the result before increasing worker counts. See Odoo 19 production configuration.

Choosing the Right Deployment: Odoo Online, Odoo.sh, or On-Premises

Choose deployment from the required modules, integrations and operating responsibilities. Odoo Online fits supported hosted functionality and configuration; Odoo.sh supports a managed development workflow with custom modules; self-hosting gives your team or provider responsibility for the server and more control over its stack. Company size alone does not determine the choice.

Our Odoo Online, Odoo.sh and self-hosted comparison covers the differences. The sizing guidance here concerns infrastructure you or your provider operate, rather than a claim that a particular employee count requires a dedicated server.

Professional Odoo Hosting Benefits

The ERPixel.sh hosting plans and calculator separate base hosting from selected services. The estimate below should be read with these distinctions:

What the ERPixel hosting estimate includes and what must be selected or agreed
ItemHow it is treated
Server modelOdoo Enterprise uses the Dedicated option; Odoo Community uses the Shared option in the calculator. Enterprise licence fees are separate.
Basic monitoringBasic infrastructure and availability monitoring is included in base hosting.
Managed backupsSelect No managed backups, Daily backups, or Daily + Weekly backups. Do not assume daily backups are included when no managed backup plan is selected. Data size affects the selected backup cost.
Additional environmentsStaging and test environments are optional additions to production.
Setup and domain servicesSelf setup or paid ERPixel setup; domain/SSL setup is a separate option and email setup is quoted separately.
Administrative accessAgree the access required for the selected environment. A shared hosting option is not a promise of full root access to a dedicated server.
High availability and upgradesThe calculator does not specify an HA architecture or guarantee upgrades without downtime. Agree resilience, maintenance windows and recovery targets for the project.

Use the calculator for the selected configuration and customer country; prices exclude VAT. Confirm operating responsibilities and delivery dates in the proposal. For application support beyond the hosting scope, see Odoo support services.

Build your hosting plan

Calculate Your Odoo Hosting Price

Configure your Odoo environment and get an instant monthly price. No email required.

Example: AWS Setup for 150+ Users

The following architecture illustrates a separate application and database setup for a 150-user organization. It is not a benchmark for 150 concurrent users or a guaranteed Odoo 19 capacity. Validate worker counts, database performance, and storage against a representative workload before choosing instance sizes.

Application Server (Odoo Workers):

  • 8 vCPUs
  • 32 GB RAM
  • 100 GB NVMe SSD
  • Ubuntu 24.04 LTS for a new Odoo 19 package-based installation
  • Nginx with SSL Termination

Database Server (PostgreSQL 15):

  • 8 vCPUs
  • 64 GB RAM
  • 500 GB dedicated SSD
  • Daily incremental backups, weekly full backups

Additional Infrastructure:

  • Elastic Load Balancer (AWS)
  • Monitoring with Zabbix and Prometheus
  • Off-site backup to AWS S3 bucket

✅ Tip: Consider separating application and database servers when resource contention, independent scaling, or availability requirements justify the added complexity. User count alone is not a threshold; measure database latency and application load first.


Best Practices for Hosting Odoo in 2026

Assign a systems administrator or agreed hosting operator to the monitoring, backups, access and maintenance responsibilities. Server sizing is only one part of operating the environment reliably.

1. Use Linux for Stability and Community Support:
Odoo’s production multiprocessing mode is not available on Windows. Use a supported Linux environment for the worker-based production setup described here, and validate its dependencies against the chosen installation method.

2. Separate Concerns:
Keep application and database responsibilities clear. A single well-sized server can be a starting point; separate servers add flexibility but also require secure networking, low latency, and coordinated operations.

3. Implement Backup Strategy:

  • Back up both the PostgreSQL database and the matching filestore, along with configuration and custom add-ons needed for recovery.
  • Keep protected off-site copies. Set backup frequency and retention from the acceptable amount of lost work (RPO), rather than relying on a universal weekly schedule.
  • Test restoration into an isolated environment and measure recovery time against your downtime target (RTO). Server snapshots alone do not prove that the application can be restored consistently.

4. Optimize Security:

  • Use firewalls and limit access to servers by IP whitelisting.
  • Implement intrusion detection systems (IDS) where necessary.
  • Use SSL certificates (Let's Encrypt or paid) for all external communications.

5. Monitor and Plan for Growth:

  • Set up resource monitoring tools like Zabbix, Grafana, or AWS CloudWatch.
  • Track response times, CPU load, available memory, swap, storage latency, free disk space, and slow database queries. Review trends and test peak workloads before increasing resources.

6. Use SSDs Everywhere:
Always prefer SSDs (NVMe if possible) for database and application storage — this reduces latency and improves Odoo response time.


Final Thoughts

Choose resources around the work the system must complete, then validate the estimate with representative transactions and reports. Agree who monitors performance, restores data, maintains custom modules and handles releases. Those responsibilities matter as much as the initial CPU and RAM.

Review ERPixel hosting options for the commercial configuration, or discuss your architecture and workload before committing to a server size.

Update notice: Reviewed on October 22, 2026 for Odoo 19: sizing assumptions, deployment choice, plan inclusions, access, backups and availability responsibilities.

CategoriesOdoo
TagsOdoo

Let’s talk

Discuss your project with ERPixel

Choose a convenient time to discuss your business requirements with our team.