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.
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: Remplacezubuntusi le$USERcréé à l’étape 1.4 est différent.addons_path: Ajustez si vos dossiers sources sont situés ailleurs.log_level: Peut être changé eninfoune fois en ligne.workers: Calculé en utilisantecho "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 !
