Skip to content

How to Deploy Odoo on Hetzner: Complete Guide

DeployMonkey Team · March 22, 2026 14 min read

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

PlanSpecsPriceOdoo Users
CX222 vCPU / 4GB€4.49/mo1-15 users
CX324 vCPU / 8GB€7.49/mo15-40 users
CX428 vCPU / 16GB€14.49/mo40-100 users
CX5216 vCPU / 32GB€28.49/mo100-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 git

2. Install PostgreSQL

apt install -y postgresql postgresql-client
sudo -u postgres createuser -s odoo

3. 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.deb

4. 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.txt

5. 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 = 8072

6. 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.target
systemctl daemon-reload
systemctl enable odoo
systemctl start odoo

7. 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.com

8. Configure Firewall

ufw allow ssh
ufw allow 80/tcp
ufw allow 443/tcp
ufw deny 8069
ufw deny 8072
ufw enable

Or 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.