Deploying Odoo on-premise for 150–200 concurrent users requires a well-structured server infrastructure to ensure optimal performance, scalability, and reliability. A powerful application server is essential for handling intensive workloads, while a dedicated PostgreSQL database server enhances database efficiency. You need to understand Odoo Server hardware specifications and requirements.

For better scalability and system integrity, it is recommended to separate the application and database servers while implementing a staging environment for development and testing. Odoo’s worker process configuration should be optimized to distribute system load efficiently. Implementing firewalls, intrusion detection systems, SSL termination, and caching mechanisms further enhances security and performance. With these best practices, businesses can maintain a stable, secure, and high-performing Odoo environment for large-scale operations.

1. Server Specifications (Self-Hosted / On-Premise)

Primary Odoo Application Server

  • Processor: 16+ Core CPU (Intel Xeon / AMD EPYC)
  • RAM: 64GB – 128GB
  • Storage:
  • SSD (Recommended): 1TB+ for fast read/write performance
  • HDD (Optional for Backups): 2TB+
  • Operating System: Ubuntu 22.04 LTS (Recommended)
  • Database: PostgreSQL (Latest Stable Version)
  • Network: 1 Gbps Ethernet or higher

Dedicated PostgreSQL Database Server (Optional for Performance Optimization)

  • Processor: 16+ Core CPU
  • RAM: 128GB+
  • Storage: 2TB NVMe SSD (RAID 1 or RAID 10 for redundancy)
  • Connection: Private LAN connection to the Odoo application server

Reverse Proxy & Load Balancer (Recommended for Scaling & High Availability)

  • Nginx or Apache with SSL termination
  • HAProxy for load balancing
  • Caching (Optional): Redis for session storage

2. Additional Considerations

Vertical Scaling: More RAM and CPU cores improve Odoo’s performance for complex operations.

Horizontal Scaling (for high load scenarios):

  • Separate PostgreSQL DB Server
  • Use Odoo workers to distribute the load efficiently

Worker Process Configuration:

  • Formula: (Total RAM – 2GB) / 0.5GB = Maximum Workers
  • Example: If 64GB RAM, then (64GB – 2GB) / 0.5GB ≈ 124 workers
  • Recommended for 200 users: 60-80 workers

Backup & Disaster Recovery:

  • Automated daily backups (Onsite & Offsite)
  • PostgreSQL replication for high availability

Separation of Application Server and Database Server,

It is generally recommended to separate the application server from the database server for better scalability and performance.

Staging Environments:

Use separate VMs for development and testing. Set up separate on-premises VMs with a copy of the production database for testing purposes.

Production Maintain a separate VM for the production environment.

Backup Strategy: Implement a robust backup strategy and consider regular database backups and off-site storage.

Security: Implement security best practices, including firewalls, intrusion detection systems, and regular security audits.

Scalability: Consider monitoring tools for performance analysis and capacity planning.

Network: Ensure high-speed, reliable networking between application and database servers.

SSL Termination: If using HTTPS, consider terminating SSL at the web server for improved performance. And web caching mechanisms to improve website performance.

Events & Activities