Retour au blog

9 min de lectureGuide technique

Guide d'installation : Odoo 19 (Community & Enterprise) sur Ubuntu 24.04

Ce guide couvre l'installation des éditions Odoo 19 Community et Enterprise à partir des sources sur un VPS Ubuntu 24.04.

Guide d'installation : Odoo 19 (Community & Enterprise) sur Ubuntu 24.04

Prérequis

  • OS : Ubuntu 24.04
  • Python : Version 3.10 ou supérieure
  • Accès : SSH avec privilèges sudo

Préparation du système et dépendances

Assurez-vous d’abord que les repos de votre système sont à jour et installez les dépendances nécessaires pour Python et la base de données.

Télécharger les sources

Téléchargez et extrayez les dossiers sources d’Odoo Community et Enterprise sur votre serveur.

Installer l’environnement virtuel Python

sudo apt install python3-venv

Installer PostgreSQL

sudo apt install postgresql postgresql-client

Configurer l’utilisateur PostgreSQL

Créez un nouvel utilisateur postgres. Remplacez $USER par votre nom d’utilisateur système réel.

sudo -u postgres createuser -d -R -S $USER

Installer les bibliothèques de développement

sudo apt install python3-pip libldap2-dev libpq-dev libsasl2-dev libcairo2-dev pkg-config

Configuration de l’environnement et installation

Créer l’environnement virtuel

Créez un environnement virtuel (venv) dans le même répertoire que celui où se trouvent les dossiers Odoo Community et Enterprise, puis activez-le.

python3 -m venv venv
source venv/bin/activate

(Note : Assurez-vous d’être à l’intérieur de l’environnement virtuel actif pour les étapes suivantes.)

Installer les prérequis Python

Naviguez dans le dossier community et exécutez :

pip install -r requirements.txt
pip install phonenumbers rlPyCairo

Installer wkhtmltopdf

Téléchargez et installez la version spécifique requise pour l’impression des rapports.

wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-3/wkhtmltox_0.12.6.1-3.jammy_amd64.deb
sudo dpkg -i wkhtmltox_0.12.6.1-3.jammy_amd64.deb

Note : La commande ci-dessus échouera. Exécutez l’étape suivante pour corriger cela :

sudo apt install -f

Vérifier l’installation

Retournez dans le chemin community et vérifiez qu’Odoo est accessible :

python3 -m odoo --version

Lancement temporaire initial

Avant de configurer complètement le service de production, effectuez un lancement test pour configurer la base de données.

Démarrer Odoo manuellement

Exécutez la commande suivante pour pointer vers le chemin des addons Enterprise et initialiser la base de données de test.

python3 -m odoo --addons-path=/home/ubuntu/odoo_enterprise/ -d odoo_db_test

Accéder à l’interface Web

Ouvrez le port dans votre pare-feu et accédez au navigateur.

sudo ufw allow 8069/tcp

Allez sur : http://<server-ip>:8069 et vérifiez qu’Odoo démarre correctement et que le gestionnaire de base de données s’affiche.

Arrêter le serveur

Retournez sur votre terminal et interrompez Odoo avec ctrl+c.

Configuration de production

Nous allons maintenant créer le fichier de configuration permanent et préparer le système pour la production.

Créer et éditer odoo.conf

Créez le fichier de configuration :

vim /home/ubuntu/odoo.conf

D’abord, générez un mot de passe maître hashé. Avec votre venv activé, exécutez :

source /home/ubuntu/venv/bin/activate
python3 -c "from passlib.context import CryptContext; print(CryptContext(['pbkdf2_sha512']).hash('YOUR_PASSWORD_HERE'))"

Remplacez YOUR_PASSWORD_HERE par votre mot de passe maître. Cela produira quelque chose comme :

$pbkdf2-sha512$25000$abc123...long_hash_string...

Copiez le hash complet et ajoutez-le dans le fichier de configuration ci-dessous :

[options]
admin_passwd = $pbkdf2-sha512$25000$abc123...the_full_hash...
db_user = ubuntu
db_password = False
db_host = False
db_port = False
addons_path = /home/ubuntu/odoo_enterprise/odoo/addons,/home/ubuntu/odoo_community/odoo/addons
workers = 17
logfile = /home/ubuntu/odoo.log
log_level = debug
http_port = 8069
longpolling_port = 8072
proxy_mode = True

Notes de configuration :

  • admin_passwd : Le mot de passe maître hashé que vous avez généré ci-dessus.
  • db_user : Remplacez ubuntu si le $USER créé à l’étape 1.4 est différent.
  • addons_path : Ajustez si vos dossiers sources sont situés ailleurs.
  • log_level : Peut être changé en info une fois en ligne.
  • workers : Calculé en utilisant echo "workers = $(( $(nproc) * 2 + 1 ))". Ajustez ce nombre en fonction de vos cœurs CPU. Diminuez ce nombre si l’instance a peu de RAM.
  • proxy_mode : Réglé sur True car nous utiliserons Nginx.

Préparer le fichier de log

touch /home/ubuntu/odoo.log

Préparer le script de démarrage

Naviguez dans le dossier community et téléchargez odoo-bin.

cd /home/ubuntu/odoo_community
wget https://raw.githubusercontent.com/odoo/odoo/refs/heads/19.0/odoo-bin
chmod +x odoo-bin

Configuration du service Systemd

Créez un service système pour gérer Odoo automatiquement.

Créer le fichier de service

sudo vim /etc/systemd/system/odoo.service

Coller la configuration du service

[Unit]
Description=Odoo 19 Service
Documentation=https://www.odoo.com
# Wait for network and postgres before starting
Requires=postgresql.service
After=network.target postgresql.service

[Service]
# ---------------------------------------------------------
# Run as your user so it can access your home dir & venv
# ---------------------------------------------------------
User=ubuntu
Group=ubuntu

# ---------------------------------------------------------
# PATHS
# ---------------------------------------------------------
# We run from the community folder so relative paths work if needed
WorkingDirectory=/home/ubuntu/odoo_community

# IMPORTANT: Point to your VENV python, then the module, then the config
ExecStart=/home/ubuntu/venv/bin/python3 /home/ubuntu/odoo_community/odoo-bin -c /home/ubuntu/odoo.conf

# ---------------------------------------------------------
# RELIABILITY
# ---------------------------------------------------------
# Restart automatically if it crashes
Restart=always
RestartSec=5s

# Increase open file limit (Critical for 17 workers!)
LimitNOFILE=65535

# standard output is handled by Odoo internal logging,
# but this catches startup errors before Odoo takes over
StandardOutput=journal+console
StandardError=journal+console

[Install]
WantedBy=multi-user.target

Démarrer le service

sudo systemctl daemon-reload
sudo systemctl start odoo

Vérifiez le statut pour vous assurer qu’il fonctionne, puis activez-le.

Configuration du proxy inverse Nginx

Configurez Nginx pour gérer le trafic, le SSL et la mise en mémoire tampon.

Installer Nginx

sudo apt install nginx -y

Créer la configuration du site Odoo

sudo vim /etc/nginx/sites-available/odoo

Coller la configuration Nginx

# Upstream for the main web interface
upstream odoo {
    server 127.0.0.1:8069;
}

# Upstream for LiveChat/Websockets
upstream odoochat {
    server 127.0.0.1:8072;
}

server {
    listen 80;
    server_name erp.tadoo.io;
    # Increase upload size to 100MB
    client_max_body_size 100M;

    # Proxy Headers
    proxy_set_header X-Forwarded-Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Real-IP $remote_addr;

    # Timeouts for long reports
    proxy_read_timeout 720s;
    proxy_connect_timeout 720s;
    proxy_send_timeout 720s;

    # Route Websocket traffic to port 8072
    location /websocket {
        proxy_pass http://odoochat;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }

    # Route standard traffic to port 8069
    location / {
        proxy_redirect off;
        proxy_pass http://odoo;
    }

    # Cache static files
    location ~* /web/static/ {
        proxy_cache_valid 200 90m;
        proxy_buffering on;
        expires 864000;
        proxy_pass http://odoo;
    }
}

Note : Remplacez erp.tadoo.io par votre propre nom de domaine.

Activer le site

sudo ln -s /etc/nginx/sites-available/odoo /etc/nginx/sites-enabled/
sudo rm /etc/nginx/sites-enabled/default
sudo nginx -t
sudo systemctl reload nginx

Sécurité et finalisation

Configurer SSL (TLS)

Installez Certbot et configurez le SSL pour le domaine.

sudo apt install certbot python3-certbot-nginx -y

Puis lancez Certbot pour obtenir et configurer le certificat SSL :

sudo certbot --nginx -d erp.tadoo.io

Note : Remplacez erp.tadoo.io par votre propre nom de domaine.

Vous pouvez maintenant accéder à votre instance Odoo via https://votre-domaine.com.

Créer la base de données de production

Allez sur /web/database/manager et créez votre base de données de production en vous assurant de définir un mot de passe utilisateur fort.

Verrouiller le gestionnaire de base de données

Pour empêcher le changement de base de données et masquer le gestionnaire, éditez à nouveau le fichier de configuration :

vim /home/ubuntu/odoo.conf

Ajoutez ces lignes :

dbfilter = ^tadoo$
list_db = False

Note : Remplacez tadoo par le nom de votre base de données de production.

Appliquer les changements

sudo systemctl restart odoo

Votre installation d’Odoo 19 est maintenant terminée !