Why Hetzner for Odoo?
Hetzner offers the best price-to-performance ratio for Odoo hosting in Europe. A CX31 (4 vCPU, 8GB RAM) costs €7.49/month — handling 30-50 concurrent Odoo users comfortably. German data centers provide GDPR-compliant hosting. Hetzner's network is fast, their uptime is excellent, and their cloud console is clean.
Server Selection
| Plan | Specs | Price | Odoo Users |
|---|---|---|---|
| CX22 | 2 vCPU / 4GB | €4.49/mo | 1-15 users |
| CX32 | 4 vCPU / 8GB | €7.49/mo | 15-40 users |
| CX42 | 8 vCPU / 16GB | €14.49/mo | 40-100 users |
| CX52 | 16 vCPU / 32GB | €28.49/mo | 100-300 users |
Choose Ubuntu 24.04 and a Falkenstein or Nuremberg datacenter for lowest latency within Europe.
Step-by-Step Installation
1. Initial Server Setup
# Update system
apt update && apt upgrade -y
# Create odoo user
adduser --system --group --home /opt/odoo odoo
# Install dependencies
apt install -y python3-pip python3-dev python3-venv \
libxml2-dev libxslt1-dev zlib1g-dev libsasl2-dev \
libldap2-dev build-essential libssl-dev libffi-dev \
libmysqlclient-dev libjpeg-dev libpq-dev \
node-less npm git2. Install PostgreSQL
apt install -y postgresql postgresql-client
sudo -u postgres createuser -s odoo3. Install wkhtmltopdf
wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-3/wkhtmltox_0.12.6.1-3.jammy_amd64.deb
apt install -y ./wkhtmltox_0.12.6.1-3.jammy_amd64.deb4. Install Odoo 19
cd /opt/odoo
git clone https://github.com/odoo/odoo.git --depth 1 --branch 19.0 /opt/odoo/odoo
python3 -m venv /opt/odoo/venv
source /opt/odoo/venv/bin/activate
pip install -r /opt/odoo/odoo/requirements.txt5. Configure Odoo
# /etc/odoo/odoo.conf
[options]
admin_passwd = your_strong_password
db_host = False
db_port = False
db_user = odoo
db_password = False
addons_path = /opt/odoo/odoo/addons,/opt/odoo/custom-addons
logfile = /var/log/odoo/odoo.log
workers = 5
limit_memory_hard = 2684354560
limit_memory_soft = 2147483648
limit_time_real = 120
list_db = False
proxy_mode = True
gevent_port = 80726. Create Systemd Service
# /etc/systemd/system/odoo.service
[Unit]
Description=Odoo 19
After=postgresql.service
[Service]
Type=simple
User=odoo
Group=odoo
ExecStart=/opt/odoo/venv/bin/python3 /opt/odoo/odoo/odoo-bin -c /etc/odoo/odoo.conf
Restart=on-failure
[Install]
WantedBy=multi-user.targetsystemctl daemon-reload
systemctl enable odoo
systemctl start odoo7. Install Nginx + SSL
apt install -y nginx certbot python3-certbot-nginx
# Create nginx config (see Docker deployment guide for full config)
# ...
certbot --nginx -d your-domain.com8. Configure Firewall
ufw allow ssh
ufw allow 80/tcp
ufw allow 443/tcp
ufw deny 8069
ufw deny 8072
ufw enableOr Use DeployMonkey
All of the above — server setup, PostgreSQL, Odoo installation, nginx, SSL, firewall, backups, monitoring — takes 2-4 hours manually. DeployMonkey does it in 5 minutes. You bring your Hetzner server (or use ours), and DeployMonkey handles everything else. AI monitoring included. Free plan available.