Why Debian 12 for Odoo?
Debian 12 (Bookworm) is known for rock-solid stability and minimal bloat. It ships with Python 3.11 natively, making it an excellent fit for Odoo 19. Debian's long support cycle and conservative package management ensure predictable production environments.
System Preparation
# Update system
sudo apt update && sudo apt upgrade -y
# Install dependencies
sudo apt install -y python3-dev python3-pip python3-venv \
build-essential libxml2-dev libxslt1-dev libldap2-dev \
libsasl2-dev libjpeg-dev libpq-dev node-less \
npm git curl wgetPostgreSQL Setup
# Debian 12 ships PostgreSQL 15
sudo apt install -y postgresql
# Or install PostgreSQL 16 from official repo
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt \
bookworm-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
curl -fsSL https://www.postgresql.org/media/keys/ACCC4CF8.asc | \
sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/postgresql.gpg
sudo apt update && sudo apt install -y postgresql-16
# Create Odoo user
sudo -u postgres createuser --createdb odoo19Install from Source
# Create system user
sudo adduser --system --home /opt/odoo --group odoo
# Clone Odoo 19
sudo -u odoo git clone --depth 1 -b 19.0 \
https://github.com/odoo/odoo.git /opt/odoo/odoo-server
# Virtual environment
sudo -u odoo python3 -m venv /opt/odoo/venv
sudo -u odoo /opt/odoo/venv/bin/pip install wheel
sudo -u odoo /opt/odoo/venv/bin/pip install -r \
/opt/odoo/odoo-server/requirements.txtInstall from Official Package
# Alternative: Odoo .deb package
wget https://nightly.odoo.com/19.0/nightly/deb/odoo_19.0.latest_all.deb
sudo apt install -y ./odoo_19.0.latest_all.deb
# This installs Odoo as a system service
# Config: /etc/odoo/odoo.conf
# Service: systemctl start odoo
# Logs: /var/log/odoo/odoo-server.logConfiguration File
# /etc/odoo.conf
[options]
admin_passwd = your_admin_password
db_host = False
db_port = False
db_user = odoo19
db_password = False
addons_path = /opt/odoo/odoo-server/addons,/opt/odoo/custom-addons
logfile = /var/log/odoo/odoo.log
proxy_mode = True
workers = 4
max_cron_threads = 1Nginx Reverse Proxy
sudo apt install -y nginx certbot python3-certbot-nginx
# /etc/nginx/sites-available/odoo
upstream odoo {
server 127.0.0.1:8069;
}
upstream odoochat {
server 127.0.0.1:8072;
}
server {
listen 80;
server_name odoo.example.com;
proxy_buffers 16 64k;
proxy_buffer_size 128k;
location / {
proxy_pass http://odoo;
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;
}
location /websocket {
proxy_pass http://odoochat;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}DeployMonkey Alternative
Skip manual Debian setup. DeployMonkey deploys Odoo 19 automatically with SSL, Nginx, backups, and monitoring in minutes.