Enterprise Resource Planning (ERP) software has become a critical component for modern businesses. Whether you’re managing sales, accounting, inventory, human resources, customer relationships, or project management, a centralized ERP platform can significantly improve operational efficiency. Among all open-source ERP solutions available today, Odoo continues to dominate the market thanks to its flexibility, extensive module ecosystem, and modern user interface. With the release of Odoo 18, businesses can benefit from improved performance, enhanced automation capabilities, better reporting tools, and a more streamlined user experience.
This guide explains how to deploy Odoo 18 on a VPS using PostgreSQL and Nginx in a production-ready configuration suitable for business environments in 2026.
Why Choose Odoo 18?
Odoo has evolved from a simple business management application into a complete ERP ecosystem. Today it supports:
- CRM
- Accounting
- Inventory Management
- Sales Automation
- Human Resources
- Manufacturing
- Project Management
- Helpdesk Systems
- Ecommerce
- Marketing Automation
Businesses can start small and gradually expand functionality without migrating to a different platform.
Why Host Odoo on Your Own VPS?
Many organizations choose self-hosted Odoo deployments because they offer:
- Full control over data
- Better privacy
- Lower long-term costs
- Custom integrations
- Unlimited customization
- Dedicated resources
- Greater scalability
Unlike shared hosting environments, a VPS provides the performance and flexibility required by ERP applications.
Recommended VPS Specifications for Odoo 18
Small Businesses
- 2 vCPU
- 4 GB RAM
- 80 GB NVMe SSD
Growing Companies
- 4 vCPU
- 8 GB RAM
- 160 GB NVMe SSD
Large Deployments
- 8+ vCPU
- 16+ GB RAM
- Enterprise NVMe Storage
For optimal performance, AMD EPYC-powered VPS infrastructure provides excellent CPU efficiency and database performance.
Odoo 18 Architecture Overview
Our deployment consists of:
Internet
│
▼
Nginx Reverse Proxy
│
▼
Odoo 18 Application
│
▼
PostgreSQL Database
This architecture provides:
- Better security
- SSL support
- Load balancing capabilities
- Reverse proxy protection
- Simplified scaling
Step 1: Deploy Ubuntu Server
Recommended operating system:
Ubuntu 24.04 LTS
Update packages:
apt update
apt upgrade -y
Install essential tools:
apt install wget curl git unzip vim net-tools -y
Verify system updates:
reboot
Step 2: Configure Hostname
Set a hostname. Example:
hostnamectl set-hostname odoo18
Verify:
hostname
Output:
odoo18
Step 3: Install PostgreSQL
Odoo relies heavily on PostgreSQL. Install:
apt install postgresql postgresql-contrib -y
Verify:
systemctl status postgresql
Enable startup:
systemctl enable postgresql
Step 4: Create PostgreSQL User
Switch user:
su - postgres
Create Odoo database user:
createuser -s odoo18
Assign password:
psql
Inside PostgreSQL:
ALTER USER odoo18 WITH PASSWORD 'StrongPasswordHere';
Exit:
q
Step 5: Install Python Dependencies
Install required packages:
apt install python3-pip python3-dev python3-venv
build-essential libxml2-dev libxslt1-dev
libldap2-dev libsasl2-dev libjpeg-dev
libpq-dev libffi-dev libssl-dev
zlib1g-dev -y
These libraries are required for various Odoo modules.
Step 6: Create Odoo User
Create a dedicated service account.
adduser --system --home=/opt/odoo
--group odoo
This improves security by isolating the application.
Step 7: Download Odoo 18
Switch to the Odoo directory:
mkdir /opt/odoo
cd /opt/odoo
Clone Odoo:
git clone https://www.github.com/odoo/odoo
--depth 1
--branch 18.0
odoo-server
Verify:
ls
Step 8: Create Python Virtual Environment
Navigate:
cd /opt/odoo
Create environment:
python3 -m venv venv
Activate:
source venv/bin/activate
Install requirements:
pip install wheel
pip install -r
/opt/odoo/odoo-server/requirements.txt
This may take several minutes.
Step 9: Install wkhtmltopdf
Odoo reporting depends on wkhtmltopdf. Install:
apt install wkhtmltopdf -y
Verify:
wkhtmltopdf --version
This component enables PDF report generation.
Step 10: Create Odoo Configuration File
Create:
nano /etc/odoo18.conf
Example configuration:
[options]
admin_passwd = StrongAdminPassword
db_host = False
db_port = False
db_user = odoo18
db_password = StrongPasswordHere
addons_path =
/opt/odoo/odoo-server/addons
logfile =
/var/log/odoo18.log
proxy_mode = True
xmlrpc_port = 8069
Save and exit.
Step 11: Create Log File
Create:
touch /var/log/odoo18.log
Set permissions:
chown odoo:odoo /var/log/odoo18.log
Logging is essential for troubleshooting.
Step 12: Create Systemd Service
Create:
nano /etc/systemd/system/odoo18.service
Example:
[Unit]
Description=Odoo18
After=postgresql.service
[Service]
Type=simple
User=odoo
Group=odoo
ExecStart=/opt/odoo/venv/bin/python3
/opt/odoo/odoo-server/odoo-bin
-c /etc/odoo18.conf
[Install]
WantedBy=multi-user.target
Reload:
systemctl daemon-reload
Enable:
systemctl enable odoo18
Start:
systemctl start odoo18
Check:
systemctl status odoo18
Step 13: Install Nginx
Install:
apt install nginx -y
Verify:
systemctl status nginx
Enable startup:
systemctl enable nginx
Step 14: Configure Nginx Reverse Proxy
Create:
nano /etc/nginx/sites-available/odoo18
Example:
server {
listen 80;
server_name
erp.yourdomain.com;
proxy_read_timeout 720s;
proxy_connect_timeout 720s;
proxy_send_timeout 720s;
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;
}
}
Enable site:
ln -s
/etc/nginx/sites-available/odoo18
/etc/nginx/sites-enabled/
Test:
nginx -t
Reload:
systemctl reload nginx
Step 15: Configure SSL
Install Certbot:
apt install certbot
python3-certbot-nginx -y
Generate certificate:
certbot --nginx
-d erp.yourdomain.com
Enable automatic renewal:
systemctl status certbot.timer
Now Odoo is accessible securely via HTTPS.
Step 16: Configure Firewall
Enable UFW:
ufw allow OpenSSH
ufw allow 80
ufw allow 443
ufw enable
Verify:
ufw status
Keep port 8069 private. Only Nginx should expose the application publicly.
Step 17: Secure PostgreSQL
Edit:
nano /etc/postgresql/*/main/postgresql.conf
Ensure:
listen_addresses = 'localhost'
This prevents external database access. Restart:
systemctl restart postgresql
Step 18: Optimize Odoo Performance
Edit:
/etc/odoo18.conf
Example worker configuration:
workers = 4
max_cron_threads = 2
limit_memory_soft = 2147483648
limit_memory_hard = 2684354560
Adjust values according to VPS resources.
Step 19: Configure Automated Backups
Database backup:
pg_dump
Example:
pg_dump -U odoo18
database_name
> backup.sql
Automate backups using cron jobs. Store copies:
- Remote storage
- Cloud backups
- Backup VPS
Never rely on a single backup location.
Step 20: Monitor Odoo
Recommended monitoring:
- CPU utilization
- RAM usage
- PostgreSQL performance
- Disk I/O
- Nginx logs
- Odoo logs
Tools include:
- Netdata
- Grafana
- Prometheus
- Zabbix
Monitoring helps identify bottlenecks before users notice them.
Common Deployment Mistakes
Using Shared Hosting
Odoo requires dedicated resources.
Running Without Nginx
Reverse proxies improve security and SSL management.
Weak PostgreSQL Security
Always restrict database access.
Ignoring Backups
ERP systems contain mission-critical business data.
No SSL
Business applications should never operate without encryption.
Odoo 18 Performance Best Practices
For production environments:
- Use NVMe storage
- Enable PostgreSQL tuning
- Optimize workers
- Enable caching
- Use HTTPS
- Monitor continuously
- Schedule backups
- Keep modules updated
These practices significantly improve responsiveness and reliability.
Why VPS Hosting Is Ideal for Odoo
Odoo workloads involve:
- Database operations
- File storage
- PDF generation
- Background workers
- User sessions
VPS infrastructure provides the resources necessary to handle these operations efficiently. Compared to shared hosting, a VPS offers:
- Better performance
- Greater security
- Full administrative control
- Easier scaling
Why UK Speed VPS Is Perfect for Odoo 18
UK Speed VPS solutions provide an excellent foundation for ERP deployments. Benefits include:
- AMD EPYC processors
- Enterprise NVMe storage
- Low-latency connectivity
- Full root access
- Flexible resource upgrades
- Advanced security controls
- Reliable uptime
These features ensure that Odoo remains responsive as your business grows.
Final Thoughts
Deploying Odoo 18 on a VPS with PostgreSQL and Nginx provides a powerful, scalable, and secure ERP platform capable of supporting modern business operations. By following a production-ready deployment strategy that includes SSL encryption, database security, automated backups, monitoring, and performance optimization, organizations can build a reliable infrastructure that scales alongside their growth. In 2026, self-hosted Odoo deployments remain one of the most cost-effective ways to gain full control over business data while leveraging the flexibility and power of open-source ERP software.
Looking for fast, secure hosting?
Visit UK Speed for cloud servers, VPS NVMe, and dedicated hosting tailored for performance.
