
This guide walks through the steps to deploy Odoo on Rocky Linux VPS using PostgreSQL, Python virtual environment, Nginx reverse proxy, and systemd. This setup is production-ready and appropriate for business deployments.
What Is Odoo?
Odoo is an open-source business management platform that integrates many core business functions into one system. It is commonly described as an ERP (Enterprise Resource Planning) platform because it centralizes operations such as sales, accounting, inventory, HR, and CRM into a single application.
Businesses use Odoo to run most of their internal operations from one interface rather than using dozens of separate tools.
Core Concept
Odoo works as a modular platform.
You install only the modules your business needs, such as:
- CRM
- Sales
- Accounting
- Inventory
- Manufacturing
- Website / Ecommerce
- Marketing automation
- Helpdesk
- Project management
- HR and payroll
All modules share the same database, so data flows automatically between them.
Example workflow:
Website order
β
Sales order
β
Inventory allocation
β
Invoice created
β
Payment recorded
Everything happens in the same system.
Main Features
CRM (Customer Relationship Management)
Manage leads and opportunities.
Features include:
- pipeline tracking
- email integration
- automated follow-ups
- activity scheduling
- sales forecasting
Accounting
Full accounting platform including:
- invoicing
- bank reconciliation
- tax automation
- financial reports
- expense management
Many companies use Odoo as a replacement for QuickBooks or Xero.
Inventory Management
Tracks physical products across warehouses.
Features include:
- stock levels
- barcode scanning
- automated reordering
- shipping integrations
- warehouse routing
Ecommerce & Website Builder
Odoo includes a built-in CMS and ecommerce platform.
Capabilities:
- website builder
- product catalog
- payment gateways
- SEO tools
- customer portals
Project Management
Teams can manage work using:
- Kanban boards
- task assignments
- time tracking
- milestones
- reporting
Manufacturing (MRP)
Manufacturing companies use Odoo for:
- bill of materials
- production planning
- shop floor control
- work orders
- cost tracking
Editions
Odoo has two versions.
Community Edition
- Free
- Open source
- Self-hosted
- Highly customizable
This is the version typically deployed on VPS servers.
Enterprise Edition
Paid commercial version that includes:
- additional modules
- mobile apps
- official support
- cloud hosting
Technology Stack
Odoo is built with:
| Component | Technology |
|---|---|
| Backend | Python |
| Web framework | Custom Python ORM |
| Database | PostgreSQL |
| Frontend | JavaScript + OWL framework |
| Web server | Nginx / Odoo HTTP server |
Because it is Python-based, developers can easily create custom modules.
Common Use Cases
Businesses use Odoo to manage:
- retail stores
- ecommerce companies
- manufacturing operations
- consulting agencies
- service providers
- SaaS businesses
It can effectively replace multiple tools like:
- Salesforce
- QuickBooks
- Shopify
- HubSpot
- Jira
Why Companies Deploy Odoo on VPS
Many organizations deploy Odoo on their own servers because it allows:
- full data control
- unlimited customization
- lower operating costs
- integration with internal systems
- better performance
This is why VPS hosting providers frequently offer Odoo-ready environments.
Example Business Workflow in Odoo
Lead arrives from website
β
CRM opportunity created
β
Sales quote sent
β
Customer confirms order
β
Inventory reserved
β
Invoice issued
β
Payment received
β
Acco.unting updated automatically
Key Advantages
- All-in-one business platform
- Open source and customizable
- Modular architecture
- Integrates many business tools
- Strong developer ecosystem
Summary
Odoo is essentially an all-in-one operating system for businesses.
Instead of running:
- CRM
- accounting
- ecommerce
- inventory
- project tools
as separate platforms, Odoo combines them into one integrated system.
How to Deploy Odoo on Rocky Linux VPS
To deploy Odoo on Rocky Linux VPS, follow the steps outlined below:
-
System Requirements
Recommended minimum VPS:
Component Minimum Recommended CPU 2 cores 4+ cores RAM 2 GB 4β8 GB Storage 40 GB SSD 80+ GB SSD OS Rocky Linux 8/9 Rocky Linux 9
Compare Rocky Linux VPS Plans
KVM-SSD-1KVM-SSD-8KVM-SSD-16KVM-SSD-32CPU1 Core2 Cores4 Cores8 CoresMemory1 GB8 GB16 GB32 GBStorage16 GB NVMe128 GB NVMe256 GB NVMe512 GB NVMeBandwidth1 TB4 TB8 TB16 TBNetwork1 Gbps1 Gbps1 Gbps1 GbpsDelivery Timeβ±οΈ Instantβ±οΈ Instantβ±οΈ Instantβ±οΈ InstantLocationUS/FRUS/FRUS/FRUS/FRPrice$7.58*$39.50*$79.40*$151.22*
-
Update System
dnf update -y dnf install epel-release -y
-
Install System Dependencies FIRST
Install all libraries required to compile Python modules.
dnf groupinstall "Development Tools" -y dnf install -y \ python3.11 \ python3.11-devel \ git \ wget \ gcc \ libffi-devel \ openssl-devel \ libxml2-devel \ libxslt-devel \ zlib-devel \ bzip2-devel \ freetype-devel \ libjpeg-devel \ openldap-devel \ postgresql-server \ postgresql-devel \ nodejs \ npm \ nano
-
Install wkhtmltopdf (Required for Reports)
sudo dnf install -y fontconfig libXrender libXext xorg-x11-fonts-75dpi xorg-x11-fonts-Type1 sudo dnf localinstall -y https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-2/wkhtmltox-0.12.6.1-2.almalinux8.x86_64.rpm
Verify:
wkhtmltopdf --version
-
Initialize PostgreSQL
postgresql-setup --initdb systemctl enable postgresql systemctl start postgresql
Create Odoo user:
su - postgres createuser -s odoo exit
-
Create Odoo System User
useradd -m -d /opt/odoo -U -r -s /bin/bash odoo
-
Install LESS compiler (required by Odoo)
npm install -g less less-plugin-clean-css
-
Download Odoo Source
su - odoo git clone https://github.com/odoo/odoo --depth 1 --branch 17.0 /opt/odoo exit
-
Create Python 3.11 Virtual Environment
cd /opt/odoo python3.11 -m venv odoo-venv
Activate it:
source odoo-venv/bin/activate
-
Install Python Build Tools FIRST
This prevents pkg_resources and build errors.
pip install --upgrade pip pip install setuptools wheel cython
Verify:
python -c "import pkg_resources; print('OK')"Expected output:
OK
-
Install Known Problem Libraries FIRST
Pre-installing these avoids compilation failures.
pip install \ psycopg2-binary \ Pillow \ lxml \ cbor2 \ decorator \ python-dateutil
-
Install Remaining Odoo Dependencies
Now install the official requirements:
pip install -r requirements.txt
This should now complete without errors.
Deactivate environment:
deactivate
-
Create Odoo Configuration
mkdir /etc/odoo nano /etc/odoo/odoo.conf
Example config:
[options] admin_passwd = ChangeThisPassword db_host = False db_port = False db_user = odoo db_password = False addons_path = /opt/odoo/addons logfile = /var/log/odoo/odoo.log proxy_mode = True
-
Create Log Directory
mkdir /var/log/odoo chown odoo:odoo /var/log/odoo
-
Create Systemd Service
nano /etc/systemd/system/odoo.service
[Unit] Description=Odoo ERP After=postgresql.service [Service] Type=simple User=odoo Group=odoo ExecStart=/opt/odoo/odoo-venv/bin/python3 /opt/odoo/odoo-bin -c /etc/odoo/odoo.conf Restart=always [Install] WantedBy=multi-user.target
Reload systemd:
systemctl daemon-reload
Enable service:
systemctl enable odoo
Start Odoo:
systemctl start odoo
-
Verify Odoo Started
Check port:
ss -lntp | grep 8069
Expected:
LISTEN 127.0.0.1:8069
Test backend:
curl http://127.0.0.1:8069
You should see HTML.
-
Install Nginx Reverse Proxy
dnf install nginx -y systemctl enable nginx systemctl start nginx
Create config:
nano /etc/nginx/conf.d/odoo.conf
server { listen 80; server_name odoo.yourdomain.com; proxy_read_timeout 720s; proxy_connect_timeout 720s; client_max_body_size 100M; location / { proxy_pass http://127.0.0.1:8069; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } }Restart nginx:
systemctl restart nginx
-
Fix Rocky Linux SELinux (important)
setsebool -P httpd_can_network_connect 1
-
Install SSL
dnf install certbot python3-certbot-nginx -y certbot --nginx -d odoo.yourdomain.com
-
Access Odoo Web Interface
Access Odoo from your browser:
https://odoo.yourdomain.com
Initial Setup:
Login Screen:
Deployment Complete
You now have Odoo running on Rocky Linux with:
- PostgreSQL database
- Python virtual environment
- systemd service management
- Nginx reverse proxy
- Letβs Encrypt SSL
Conclusion
You now know how to deploy Odoo on Rocky Linux VPS.











