Prerequisites
Before you begin, ensure your server meets the following requirements:
- OS: Ubuntu 24.04 LTS (Noble Numbat)
- Resources: At least 2GB RAM (4GB+ recommended for production)
- Access: A user with sudo privileges
Step 1: Update the System
Start by ensuring your system packages are up to date.
sudo apt update && sudo apt upgrade -y
Step 2: Install System Dependencies
Odoo 19 requires several Python libraries and system tools for handling PDF generation, image processing, and database communication.
sudo apt install -y git python3-pip python3-dev python3-venv \
build-essential wget libxslt1-dev libzip-dev libldap2-dev \
libsasl2-dev libssl-dev libjpeg-dev libpq-dev \
node-less npm nodejs xfonts-75dpi xfonts-base
Step 3: Setup PostgreSQL
Odoo uses PostgreSQL as its database backend. Ubuntu 24.04 ships with PostgreSQL 16, which is fully compatible.
sudo apt install postgresql -y
Create a dedicated Odoo Database User: For security, we create a user named odoo19
sudo su - postgres -c "createuser -s odoo19"
Step 4: Create a System User
Running Odoo as a root user is a security risk. Create a system user to manage the service.
sudo useradd -m -d /opt/odoo19 -U -r -s /bin/bash odoo19
Step 5: Install wkhtmltopdf
To generate PDF reports (like invoices), Odoo requires the wkhtmltopdf tool with a patched version of Qt.
wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-3/wkhtmltox_0.12.6.1-3.jammy_amd64.deb
sudo apt install ./wkhtmltox_0.12.6.1-3.jammy_amd64.deb -y
Step 6: Clone Odoo 19 Source Code
Now, switch to the odoo19 user and download the source code from GitHub.
sudo su - odoo19
git clone https://www.github.com/odoo/odoo --depth 1 --branch 19.0 /opt/odoo19/odoo
exit
Step 7: Create a Python Virtual Environment
Using a virtual environment prevents version conflicts with other system-wide Python packages.
sudo su - odoo19
python3 -m venv odoo-venv
source odoo-venv/bin/activate
pip install --upgrade pip
pip install wheel
pip install -r odoo/requirements.txt
deactivate
exit
Step 8: Configure Odoo
Create a configuration file to store your database and port settings.
Create the file:
sudo nano /etc/odoo19.conf
Paste the following content (Update admin_passwd with a secure key):
[options]
admin_passwd = YOUR_STRONG_PASSWORD
db_host = False
db_port = False
db_user = odoo19
db_password = False
addons_path = /opt/odoo19/odoo/addons
http_port = 8069
logfile = /var/log/odoo/odoo19.log
Set permissions:
sudo mkdir /var/log/odoo
sudo chown odoo19:odoo19 /var/log/odoo
sudo chown odoo19:odoo19 /etc/odoo19.conf
sudo chmod 640 /etc/odoo19.conf
Step 9: Create a Systemd Service
This allows Odoo to start automatically when the server boots.
Create the service file:
sudo nano /etc/systemd/system/odoo19.service
Paste the following:
[Unit]
Description=Odoo 19
Requires=postgresql.service
After=network.target postgresql.service
[Service]
Type=simple
SyslogIdentifier=odoo19
PermissionsStartOnly=true
User=odoo19
Group=odoo19
ExecStart=/opt/odoo19/odoo-venv/bin/python3 /opt/odoo19/odoo/odoo-bin -c /etc/odoo19.conf
StandardOutput=journal+console
[Install]
WantedBy=multi-user.target
Start and Enable the Service:
sudo systemctl daemon-reload
sudo systemctl enable --now odoo19
Final Step: Access Odoo
Open your web browser and navigate to: http://<your_server_ip>:8069
You will be greeted by the Odoo database creation page. Use the Master Password you defined in Step 8 to create your first database.
