Se rendre au contenu

Installer Odoo 19 sur Ubuntu 24.04 LTS

26 avril 2026 par
Installer Odoo 19 sur Ubuntu 24.04 LTS
B.Mustapha

Bloc 1 · Installation — Article 1/3

Installer Odoo 19 sur Ubuntu 24.04 LTS

Ta première instance Odoo 19 opérationnelle en moins de 20 minutes. On part d'un Ubuntu 24.04 vierge et on arrive à un service Odoo qui démarre automatiquement au boot, prêt pour le développement.

~12 minutes de lecture

Ce que tu vas apprendre

Préparer le système

Installer toutes les dépendances système nécessaires à Odoo 19 sur Ubuntu 24.04.

PostgreSQL 16

Installer et configurer le serveur de base de données utilisé par Odoo.

Environnement Python

Cloner les sources Odoo 19, créer un venv isolé et installer les dépendances pip.

Service systemd

Configurer Odoo en tant que service Linux qui démarre automatiquement au boot.

Prérequis
  • Ubuntu 24.04 LTS (Noble Numbat) — serveur ou desktop
  • Un accès sudo (ou root)
  • Connexion internet (pour télécharger les sources et les paquets)
  • Minimum 2 Go de RAM (4 Go recommandés pour le développement)

Cet article couvre l'installation depuis les sources (git clone). C'est la méthode recommandée pour le développement, car elle te donne un contrôle total sur le code et te permet de travailler sur plusieurs versions en parallèle grâce aux environnements virtuels Python.

Architecture d'une installation Odoo

Odoo repose sur trois composants principaux. Toute installation, qu'elle soit de développement ou de production, suit cette architecture :

Architecture Odoo 19 : PostgreSQL, odoo-bin et navigateur

PostgreSQL stocke les données, odoo-bin traite la logique métier, le navigateur affiche l'interface.

Étape 1 — Mettre à jour le système et installer les dépendances

Commence par mettre à jour la liste des paquets et installer les mises à jour de sécurité :

sudo apt update && sudo apt upgrade -y

Ensuite, installe les paquets système nécessaires à la compilation des dépendances Python d'Odoo. Cette commande couvre toutes les librairies requises :

sudo apt install -y git python3-dev python3-pip python3-venv \
    build-essential libxml2-dev libxslt1-dev libldap2-dev libsasl2-dev \
    libpq-dev libjpeg-dev libfreetype6-dev libtiff5-dev libopenjp2-7-dev \
    liblcms2-dev libwebp-dev libharfbuzz-dev libfribidi-dev libxcb1-dev \
    zlib1g-dev node-less npm
Pourquoi tous ces paquets ? Odoo compile certaines dépendances Python nativement (lxml, Pillow, psycopg2, python-ldap...). Sans les librairies de développement correspondantes (-dev), l'installation pip échouera.

Si ton application doit supporter les langues écrites de droite à gauche (arabe, hébreu), installe également rtlcss :

sudo npm install -g rtlcss

Étape 2 — Installer et configurer PostgreSQL 16

Odoo utilise exclusivement PostgreSQL comme système de gestion de base de données. Ubuntu 24.04 embarque PostgreSQL 16 par défaut :

sudo apt install -y postgresql postgresql-client

Vérifie que le service est actif :

sudo systemctl status postgresql

Tu devrais voir active (exited) — c'est normal, PostgreSQL est géré par pg_ctlcluster en arrière-plan.

Crée maintenant un utilisateur PostgreSQL dédié à Odoo. Son nom doit correspondre à l'utilisateur système que l'on va créer à l'étape 4 :

sudo -u postgres createuser -d -R -S odoo19
Les options expliquées
  • -d : le rôle peut créer des bases de données (nécessaire pour Odoo)
  • -R : le rôle ne peut PAS créer d'autres rôles
  • -S : le rôle n'est PAS superutilisateur (bonne pratique de sécurité)

Étape 3 — Installer wkhtmltopdf

Odoo utilise wkhtmltopdf pour convertir les rapports QWeb (factures, bons de livraison, devis...) en fichiers PDF. La version recommandée est 0.12.6.1.

Sur Ubuntu 24.04, la méthode la plus fiable est d'installer le paquet .deb depuis les releases officielles :

# Télécharger le paquet (version Jammy, compatible Noble)
wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-3/wkhtmltox_0.12.6.1-3.jammy_amd64.deb

# Installer le paquet
sudo apt install -y ./wkhtmltox_0.12.6.1-3.jammy_amd64.deb

Vérifie l'installation :

wkhtmltopdf --version
# Attendu : wkhtmltopdf 0.12.6.1 (with patched qt)
Pourquoi ne pas utiliser apt install wkhtmltopdf ? Le paquet Ubuntu standard ne contient pas les patches Qt nécessaires pour le rendu des en-têtes et pieds de page dans les rapports PDF. Utilise toujours la version patchée depuis le dépôt officiel wkhtmltopdf.

Étape 4 — Créer un utilisateur système dédié

Pour des raisons de sécurité, Odoo ne doit jamais tourner sous root ni sous ton compte utilisateur personnel. On crée un utilisateur système dédié :

sudo useradd -m -d /opt/odoo19 -U -r -s /bin/bash odoo19
Les options expliquées
  • -m : crée le répertoire home (/opt/odoo19)
  • -d /opt/odoo19 : définit le répertoire home
  • -U : crée un groupe du même nom
  • -r : compte système (pas de login interactif par défaut)
  • -s /bin/bash : shell bash (nécessaire pour su - odoo19)

Cet utilisateur possède son propre répertoire /opt/odoo19 où l'on va stocker les sources Odoo, l'environnement virtuel et les modules custom.

Étape 5 — Télécharger Odoo 19 et créer l'environnement virtuel

Bascule sur l'utilisateur odoo19 pour que tous les fichiers appartiennent au bon propriétaire :

sudo su - odoo19

Clone le dépôt officiel Odoo 19 Community depuis GitHub :

git clone https://github.com/odoo/odoo.git --depth 1 --branch 19.0 --single-branch /opt/odoo19/odoo
L'option --depth 1 ne télécharge que le dernier commit. Cela réduit le temps de téléchargement de plusieurs minutes à ~30 secondes et économise environ 3 Go d'espace disque.

Crée l'environnement virtuel Python :

python3 -m venv /opt/odoo19/venv

Active l'environnement virtuel et installe les dépendances :

source /opt/odoo19/venv/bin/activate
pip install wheel
pip install -r /opt/odoo19/odoo/requirements.txt

L'installation pip peut prendre 2 à 5 minutes selon ta connexion. Certains paquets compilent du code C (lxml, Pillow, psycopg2) — c'est pour cela qu'on a installé les paquets -dev à l'étape 1.

Crée un répertoire pour tes futurs modules custom :

mkdir /opt/odoo19/custom-addons

Quitte l'utilisateur odoo19 :

deactivate
exit
Astuce — Odoo fournit aussi un script qui installe automatiquement toutes les dépendances via les paquets Debian (sans pip). Lance-le depuis le répertoire des sources : sudo /opt/odoo19/odoo/setup/debinstall.sh. C'est une alternative valide si tu préfères éviter pip.

Étape 6 — Configurer Odoo (odoo.conf)

Crée le fichier de configuration :

sudo nano /etc/odoo19.conf

Colle le contenu suivant :

[options]
; Mot de passe maître — protège la création/suppression de bases
admin_passwd = change_moi_en_production

; Connexion PostgreSQL (valeurs par défaut pour une install locale)
db_host = False
db_port = False
db_user = odoo19
db_password = False

; Répertoires des modules
addons_path = /opt/odoo19/odoo/addons, /opt/odoo19/custom-addons

; Port HTTP (8069 par défaut)
http_port = 8069

; Fichier de log
logfile = /var/log/odoo19/odoo.log
log_level = info
Paramètres clés
  • admin_passwd : mot de passe maître (page /web/database/manager). Change-le impérativement en production.
  • db_host = False : connexion via socket Unix local (plus rapide, pas de mot de passe).
  • addons_path : sépare les modules Odoo officiels et tes modules custom par une virgule.
  • logfile : centralise les logs dans un fichier dédié.

Crée le répertoire de log et attribue les bons droits :

sudo mkdir -p /var/log/odoo19
sudo chown odoo19:odoo19 /var/log/odoo19

Étape 7 — Premier lancement manuel

Avant de créer le service systemd, vérifie que tout fonctionne en lançant Odoo manuellement :

sudo -u odoo19 /opt/odoo19/venv/bin/python3 /opt/odoo19/odoo/odoo-bin -c /etc/odoo19.conf

Tu devrais voir les logs défiler dans le terminal. Quand la ligne suivante apparaît, Odoo est prêt :

INFO ? odoo.modules.loading: Modules loaded.

Ouvre ton navigateur à l'adresse http://localhost:8069 (ou http://IP_DU_SERVEUR:8069 si tu es sur un serveur distant).

La page de création de base de données s'affiche. Remplis les champs :

  • Master Password : le mot de passe défini dans admin_passwd
  • Database Name : le nom de ta base (ex : odoo19_dev)
  • Email : ton adresse email (sera le login admin)
  • Password : mot de passe de l'utilisateur admin
  • Language : Français
  • Country : ton pays

Clique sur Create Database. Après quelques secondes, tu arrives sur la page d'accueil d'Odoo avec la liste des applications à installer.

Arrête le processus avec Ctrl+C une fois le test réussi.

Étape 8 — Créer un service systemd

Pour que Odoo démarre automatiquement au boot du serveur, crée un fichier service :

sudo nano /etc/systemd/system/odoo19.service

Colle le contenu suivant :

[Unit]
Description=Odoo 19
Requires=postgresql.service
After=network.target postgresql.service

[Service]
Type=simple
SyslogIdentifier=odoo19
User=odoo19
Group=odoo19
ExecStart=/opt/odoo19/venv/bin/python3 /opt/odoo19/odoo/odoo-bin -c /etc/odoo19.conf
StandardOutput=journal+console

[Install]
WantedBy=multi-user.target
Points importants
  • Requires=postgresql.service : garantit que PostgreSQL est lancé avant Odoo.
  • User=odoo19 : le service tourne sous l'utilisateur dédié, pas sous root.
  • ExecStart : utilise le Python du venv, pas celui du système.

Active et démarre le service :

sudo systemctl daemon-reload
sudo systemctl enable --now odoo19

Vérifie que le service tourne :

sudo systemctl status odoo19

Tu devrais voir active (running). Voici les commandes utiles pour gérer le service au quotidien :

# Arrêter Odoo
sudo systemctl stop odoo19

# Démarrer Odoo
sudo systemctl start odoo19

# Redémarrer Odoo (après modification de code ou config)
sudo systemctl restart odoo19

# Consulter les logs en temps réel
sudo journalctl -u odoo19 -f
Changement v19 — Si tu viens d'Odoo 17 ou 18, note ces différences :
  • Python 3.12 minimum : Odoo 19 est testé sur Python 3.12 (Ubuntu 24.04) et 3.13 (Debian Trixie). Python 3.10 reste supporté mais n'est plus la cible principale.
  • lxml-html-clean : depuis lxml 5.2, le module html_clean est dans un paquet séparé (lxml-html-clean). Le requirements.txt le gère automatiquement pour Python ≥ 3.12.
  • PyPDF2 → PyPDF : sur Python 3.13+, Odoo utilise PyPDF (successeur de PyPDF2). Sur Python 3.12, PyPDF2 reste utilisé.

Récapitulatif

Voici la checklist complète de ce que tu as mis en place :

Composant Détail
OSUbuntu 24.04 LTS (Noble Numbat)
Python3.12 (venv dans /opt/odoo19/venv)
PostgreSQL16, utilisateur odoo19
wkhtmltopdf0.12.6.1 (patched Qt)
Sources Odoo/opt/odoo19/odoo (branche 19.0)
Modules custom/opt/odoo19/custom-addons
Configuration/etc/odoo19.conf
Logs/var/log/odoo19/odoo.log
Serviceodoo19.service (systemd, auto-start)
Port HTTP8069

Structure finale des répertoires

/opt/odoo19/
├── odoo/                  # Sources Odoo 19 (git clone)
│   ├── addons/            # Modules officiels
│   ├── odoo/              # Framework Python
│   ├── odoo-bin           # Point d'entrée
│   └── requirements.txt   # Dépendances pip
├── venv/                  # Environnement virtuel Python
│   ├── bin/python3
│   └── lib/
└── custom-addons/         # Tes modules personnalisés

/etc/odoo19.conf           # Configuration Odoo
/etc/systemd/system/odoo19.service  # Service systemd
/var/log/odoo19/odoo.log   # Fichier de log

Pour aller plus loin

Cette installation est parfaite pour le développement. Pour un environnement de production, il faudra ajouter :

  • Nginx en reverse proxy (SSL/TLS, compression, cache des assets statiques)
  • Certificat SSL via Let's Encrypt (gratuit)
  • Workers : passer de workers = 0 (mono-thread, mode dev) à workers = N (multi-process, mode production)
  • Sauvegardes automatiques de la base PostgreSQL (pg_dump cron)
  • Logrotate pour le fichier de log

Ces sujets seront couverts dans de futurs articles de la série.

Liens utiles

Télécharge le Guide Technique Odoo 19

Architecture, pièges v19, checklist premier module — tout dans un PDF gratuit.

Télécharger le guide

Article suivant de la série :

Installer Odoo 19 sur Windows →
Mesurer la performance de bus.bus en Odoo 19
Saison « Dépassement tech v19 » · Article 5/5 · CLOSING