Installation Odoo · 12 min read · Nov 12, 2025

Comment installer le logiciel ERP Odoo 14 sur Ubuntu 20.04

Odoo (anciennement connu sous le nom d’OpenERP) est une suite auto-hébergée de plus de 10 000 applications open source adaptées à divers besoins commerciaux, y compris CRM, eCommerce, comptabilité, gestion des stocks, gestion de projet et point de vente. Ces applications sont entièrement intégrées et accessibles via une interface web commune.

Dans ce tutoriel, nous allons apprendre à installer la pile Odoo 14 sur un serveur basé sur Ubuntu 20.04.

Prérequis

  1. Un serveur basé sur Ubuntu 20.04 avec un minimum de 2 Go de RAM pour héberger la pile Odoo.
  2. Un deuxième serveur basé sur Ubuntu 20.04 avec un minimum de 2 Go de RAM pour héberger la base de données PostgreSQL. Vous pouvez cependant installer la base de données sur le même serveur qu’Odoo, mais pour les environnements de production, il est fortement recommandé de l’installer sur un serveur séparé. Vous pouvez également choisir l’une des options de base de données gérées disponibles auprès du fournisseur de votre choix.
  3. Les exigences en matière de RAM dépendront du nombre d’utilisateurs simultanés qui utiliseront la pile. Un guide détaillé sur la façon de calculer les exigences système peut être trouvé dans la documentation d’Odoo.
  4. Gardez vos systèmes à jour. shell $ sudo apt update $ sudo apt upgrade
  5. Un utilisateur non-root avec des privilèges sudo sur les deux serveurs.

Configurer les règles de pare-feu

Pour les besoins de ce tutoriel, nous supposerons que vous avez le pare-feu ufw installé sur les deux serveurs.

Sur le serveur Odoo, nous aurons besoin que les ports 22, 80, 443, 6010, 5432 et 8069 soient ouverts. Le port 22 est utilisé pour SSH, le port 80 est pour HTTP, le port 443 est pour HTTPS, le port 6010 est utilisé pour la communication Odoo, le port 5432 est utilisé par PostgreSQL et le port 8069 est utilisé par l’application serveur Odoo.

Exécutez les commandes suivantes pour ouvrir les ports requis sur le serveur Odoo.

$ sudo ufw allow "OpenSSH"
$ sudo ufw allow 80,443,6010,5432,8069,8072/tcp
$ sudo ufw allow 80/tcp
$ sudo ufw allow 443/tcp
$ sudo ufw allow 6010/tcp
$ sudo ufw allow 5432/tcp
$ sudo ufw allow 8069/tcp
$ sudo ufw allow 8072/tcp

Sur le serveur PostgreSQL, nous devons ouvrir les ports 22, 6010 et 5432. Ouvrez-les en utilisant les commandes que nous venons de discuter.

Attribuer des noms d’hôtes

Vous pouvez soit utiliser les adresses IP des serveurs, soit utiliser leurs noms de domaine pleinement qualifiés (FQDN), si disponibles. Pour notre tutoriel, nous utiliserons des FQDN et pour cela, nous devons définir des noms d’hôtes sur les deux serveurs.

Sur le serveur Odoo, ouvrez le fichier /etc/hosts.

$ sudo nano /etc/hosts

Assurez-vous qu’il ressemble à ceci.

127.0.0.1  localhost
127.0.0.1  odoo.yourdomain.com      odoo
10.1.1.10  postgresql.yourdomain.com  postgresql

Sur le serveur PostgreSQL, ouvrez le fichier et assurez-vous qu’il ressemble à ceci.

127.0.0.1  localhost
127.0.0.1  postgresql.yourdomain.com  postgresql
10.1.2.10  odoo.yourdomain.com      odoo

Appuyez sur Ctrl + X pour fermer l’éditeur et appuyez sur Y lorsque vous y êtes invité pour enregistrer le fichier.

Installer et configurer PostgreSQL

Ubuntu 20.04 est livré avec PostgreSQL 12 par défaut et nous allons l’installer. Exécutez la commande suivante sur le serveur PostgreSQL.

$ sudo apt install postgresql-12 postgresql-server-dev-12

Ensuite, nous devons créer un utilisateur de base de données odoo.

$ sudo -u postgres createuser odoo -U postgres -dP

L’option -u exécute la commande en tant qu’utilisateur postgres.

L’option -U indique le nom d’utilisateur à utiliser pour se connecter.

L’option -d accorde à l’utilisateur la permission de créer des bases de données.

L’option -p demande le mot de passe du nouvel utilisateur.

Configurer l’authentification basée sur l’hôte

Nous devons donner la permission au service PostgreSQL de pouvoir se connecter au serveur Odoo.

Tout d’abord, arrêtez le service PostgreSQL.

$ sudo systemctl stop postgresql

Ouvrez le fichier /etc/postgresql/12/main/pg_hba.conf pour l’éditer.

$ sudo nano /etc/postgresql/12/main/pg_hba.conf

Collez la ligne suivante à la fin.

host    all        odoo        odoo.yourdomain.com        md5

Cette ligne accorde la permission à l’utilisateur odoo de se connecter à toutes les bases de données de ce serveur. Vous pouvez également spécifier le nom des bases de données au lieu d’utiliser le mot-clé all.

Appuyez sur Ctrl + X pour fermer l’éditeur et appuyez sur Y lorsque vous y êtes invité pour enregistrer le fichier.

Configurer l’adresse d’écoute de PostgreSQL

Ensuite, nous devons permettre au serveur de base de données d’écouter les connexions à distance. Ouvrez le fichier /etc/postgresql/12/main/postgresql.conf pour l’éditer.

$ sudo nano /etc/postgresql/12/main/postgresql.conf

Changez la ligne listen_addresses de

#listen_addresses = 'localhost' # quelle(s) adresse(s) IP écouter;

à.

#De la section CONNECTIONS AND AUTHENTICATION
listen_addresses = '*'

Le * signifie qu’il écoutera toutes les adresses IP. Vous pouvez le changer pour l’adresse IP de votre instance Odoo.

Appuyez sur Ctrl + X pour fermer l’éditeur et appuyez sur Y lorsque vous y êtes invité pour enregistrer le fichier.

Activer et démarrer le service PostgreSQL

Puisque notre configuration est terminée, il est temps de démarrer et d’activer le service PostgreSQL.

$ sudo systemctl start postgresql && sudo systemctl enable postgresql

Installer Odoo

Installer les dépendances et préparer l’installation

Créez un nouvel utilisateur système pour gérer les processus Odoo sur le serveur Odoo.

$ sudo adduser --system --home=/opt/odoo --group odoo

Nous devons installer certaines dépendances système, mais d’abord, nous devons activer les dépôts de source. Pour ce faire, sauvegardez la liste des sources d’origine, puis activez tous les dépôts de source et mettez à jour la liste des dépôts.

$ sudo cp /etc/apt/sources.list /etc/apt/sources.list~
$ sudo sed -Ei 's/^# deb-src /deb-src /' /etc/apt/sources.list
$ sudo apt update

Installez les dépendances système requises pour la configuration d’Odoo 14.

 $ sudo apt install python3-pip python3-suds python3-all-dev python3-venv python3-dev python3-setuptools python3-tk libxml2-dev libxslt1-dev libevent-dev libsasl2-dev libldap2-dev pkg-config libtiff5-dev libjpeg8-dev libjpeg-dev zlib1g-dev libfreetype6-dev liblcms2-dev liblcms2-utils libwebp-dev tcl8.6-dev tk8.6-dev libyaml-dev fontconfig xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils libpq-dev
$ sudo apt build-dep lxml

Installez Nodejs.

$ sudo curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
$ sudo apt install nodejs

Installez le package Less CSS en utilisant Node.

$ sudo npm install -g less less-plugin-clean-css

Téléchargez le package wkhtmltopdf version 0.12.6.

$ cd /tmp
$ wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox_0.12.6-1.focal_amd64.deb

Installez le package.

$ sudo dpkg -i wkhtmltox_0.12.6-1.focal_amd64.deb

Pour vous assurer que wkhtmltopdf fonctionne correctement, copiez les binaires dans /usr/bin et donnez-leur les permissions appropriées.

$ sudo cp /usr/local/bin/wkhtmlto* /usr/bin/
$ sudo chmod a+x /usr/bin/wk*
$ cd ~

Télécharger les fichiers Odoo

Clonez le dépôt Github d’Odoo sur votre système.

$ sudo git clone https://github.com/odoo/odoo.git --depth 1 --branch 14.0 --single-branch /opt/odoo

Pour notre objectif, nous copions Odoo dans le répertoire /opt/odoo d’où il sera installé.

Configurer l’environnement Python Virtualenv

Cette étape est optionnelle mais recommandée, car un environnement python virtuel pour Odoo aidera à éviter les conflits avec les modules Python du système d’exploitation, surtout lors des mises à niveau du système d’exploitation.

Pour cela, nous allons utiliser virtualenv.

  1. Créez un nouvel environnement virtualenv pour Odoo. shell $ python3 -m venv /home//odoo-env
  2. Activez l’environnement virtuel. Nous créons un environnement sous le répertoire personnel de l’utilisateur système. Vous êtes libre de choisir n’importe quel emplacement que vous aimez. shell $ source /home//odoo-env/bin/activate
  3. Mettez à jour PIP au cas où. shell (odoo-env) $ pip3 install --upgrade pip
  4. Installez le module wheel de Python dans l’environnement virtuel. shell $ pip3 install wheel

Installer les dépendances Python

Installez les dépendances Python requises par Odoo 14.

$ pip3 install -r /opt/odoo/doc/requirements.txt
$ pip3 install -r /opt/odoo/requirements.txt

Les exigences prendront un certain temps à s’installer, alors soyez patient.

Vérifiez si les exigences sont installées correctement en vérifiant la liste des modules Python installés.

$ pip3 list
Package                       Version
----------------------------- ---------
alabaster                     0.7.12
appdirs                       1.4.4
attrs                         20.3.0
Babel                         2.6.0
beautifulsoup4                4.9.3
cached-property               1.5.2
certifi                       2020.12.5
chardet                       3.0.4
decorator                     4.3.0
defusedxml                    0.7.1
docutils                      0.14
ebaysdk                       2.1.5
feedparser                    5.2.1
freezegun                     0.3.15
gevent                        20.9.0
greenlet                      0.4.17
html2text                     2018.1.9
idna                          2.6
imagesize                     1.2.0
isodate                       0.6.0
Jinja2                        2.11.2
libsass                       0.17.0
lxml                          4.6.1
Mako                          1.0.7
MarkupSafe                    1.1.0
num2words                     0.5.6
ofxparse                      0.19
packaging                     20.9
passlib                       1.7.1
Pillow                        8.0.1
pip                           21.0.1
pkg-resources                 0.0.0
polib                         1.1.0
psutil                        5.6.6
psycopg2                      2.8.5
pyasn1                        0.4.8
pyasn1-modules                0.2.8
pydot                         1.4.1
Pygments                      2.8.1
pyparsing                     2.4.7
PyPDF2                        1.26.0
pyserial                      3.4
python-dateutil               2.7.3
python-ldap                   3.1.0
python-stdnum                 1.8
pytz                          2019.1
pyusb                         1.0.2
qrcode                        6.1
reportlab                     3.5.55
requests                      2.21.0
requests-toolbelt             0.9.1
setuptools                    44.0.0
six                           1.15.0
snowballstemmer               2.1.0
soupsieve                     2.2
Sphinx                        3.5.2
sphinx-patchqueue             1.0.4
sphinxcontrib-applehelp       1.0.2
sphinxcontrib-devhelp         1.0.2
sphinxcontrib-htmlhelp        1.0.3
sphinxcontrib-jsmath          1.0.1
sphinxcontrib-qthelp          1.0.3
sphinxcontrib-serializinghtml 1.1.4
unidiff                       0.6.0
urllib3                       1.24.3
vobject                       0.9.6.1
Werkzeug                      0.16.1
wheel                         0.36.2
xlrd                          1.2.0
XlsxWriter                    1.1.2
xlwt                          1.3.0
zeep                          3.2.0
zope.event                    4.5.0
zope.interface                5.2.0

Quittez l’environnement virtuel Python.

$ deactivate

Configurer Odoo

Copiez le fichier de configuration Odoo par défaut pour en créer un nouveau.

$ sudo cp /opt/odoo/debian/odoo.conf /etc/odoo-server.conf

Ouvrez le fichier pour l’éditer.

$ sudo nano /etc/odoo-server.conf

Modifiez le fichier pour qu’il ressemble à ceci.

[options]
; Ceci est le mot de passe qui permet les opérations sur la base de données :
admin_passwd = admin
db_host = postgresql.yourdomain.com
db_port = False
db_user = odoo
db_password = odoo_password
addons_path = /opt/odoo/addons
xmlrpc_port = 8069

Appuyez sur Ctrl + X pour fermer l’éditeur et appuyez sur Y lorsque vous y êtes invité pour enregistrer le fichier.

L’option admin_passwd est le mot de passe qui permet les opérations administratives dans l’interface Odoo. Assurez-vous de choisir un mot de passe sécurisé.

L’option db_host est le FQDN ou l’adresse IP du serveur PostgreSQL.

L’option db_port est définie sur false puisque le port PostgreSQL par défaut 5432 est utilisé. Si vous souhaitez utiliser un port différent, vous devrez mettre à jour cette valeur.

L’option db_user est le nom de l’utilisateur PostgreSQL.

L’option db_password est le mot de passe de l’utilisateur PostgreSQL ‘odoo’ que nous avons créé précédemment sur le serveur PostgreSQL.

L’option addons_path est le chemin par défaut des Addons. Vous pouvez également ajouter un chemin personnalisé pour les Addons en les séparant par des virgules.

L’option xmlrpc_port est le port sur lequel Odoo écoute.

Créer un service Odoo

Pour s’assurer qu’Odoo continue de fonctionner même après un redémarrage du système, nous devons créer un service pour cela.

Créez un fichier /lib/systemd/system/odoo-server.service et ouvrez-le pour l’éditer.

$ sudo nano /lib/systemd/system/odoo-server.service

Collez le code suivant dedans.

[Unit]
Description=Odoo Open Source ERP et CRM

[Service]
Type=simple
PermissionsStartOnly=true
SyslogIdentifier=odoo-server
User=odoo
Group=odoo
ExecStart=/home//odoo-env/bin/python3 /opt/odoo/odoo-bin --config=/etc/odoo-server.conf --addons-path=/opt/odoo/addons/
WorkingDirectory=/opt/odoo/
StandardOutput=journal+console

[Install]
WantedBy=multi-user.target

Remplacez /home/ par l’emplacement que vous avez choisi pour installer l’environnement virtuel Python.

Appuyez sur Ctrl + X pour fermer l’éditeur et appuyez sur Y lorsque vous y êtes invité pour enregistrer le fichier.

Définir les permissions des fichiers

Définissez les permissions sur le fichier odoo-server.service afin que seul l’utilisateur Odoo puisse le lire ou l’exécuter.

$ sudo chmod 755 /lib/systemd/system/odoo-server.service
$ sudo chown odoo: /lib/systemd/system/odoo-server.service

Définissez la propriété sur l’environnement Python et le répertoire d’installation d’Odoo.

$ sudo chown -R odoo: /opt/odoo/
$ sudo chown -R odoo: /home//odoo-env

Restreignez le fichier de configuration Odoo.

$ sudo chown odoo: /etc/odoo-server.conf
$ sudo chmod 640 /etc/odoo-server.conf

Démarrer le serveur Odoo

Démarrez et activez le serveur Odoo.

$ sudo systemctl start odoo-server
$ sudo systemctl enable odoo-server

Vérifiez l’état du serveur.

$ sudo systemctl status odoo-server

Dans votre navigateur, ouvrez l’URL http://:8069 ou http://odoo.yourdomain.com:8069. Si tout fonctionne correctement, vous devriez voir l’écran de création de base de données d’Odoo.

Écran d'installation Odoo

Remplissez tous les champs. Cochez le champ Données de démonstration pour peupler la base de données avec des données d’exemple, puis cliquez sur le bouton Créer une base de données.

Ensuite, vous verrez une liste d’applications que vous pouvez choisir et sélectionner.

La première fois que vous créez une base de données, la page des addons mettra du temps à se charger, alors ne rafraîchissez pas la page.

Installer et configurer Nginx

Jusqu’à présent, nous avons utilisé le serveur Odoo pour exécuter la pile. Mais idéalement, il est préférable de l’exécuter sur Nginx en utilisant un proxy, car cela nous permettra d’installer SSL dessus.

Installez Nginx.

$ sudo apt install nginx

Pour l’exécuter via Nginx, nous devons exécuter Odoo sur localhost. Pour changer cela, arrêtez le service Odoo.

$ sudo systemctl stop odoo-server

Ouvrez le fichier de configuration du serveur Odoo.

$ sudo nano /etc/odoo-server.conf

Ajoutez les lignes suivantes.

xmlrpc_interface = 127.0.0.1
proxy_mode = True

Créez un fichier de configuration Nginx pour Odoo.

$ sudo nano /etc/nginx/sites-available/odoo.conf

Collez le code ci-dessous.

#serveur odoo
upstream odoo {
 server 127.0.0.1:8069;
}
upstream odoochat {
 server 127.0.0.1:8072;
}

# http -> https
server {
   listen 80;
   server_name odoo.yourdomain.com;
   rewrite ^(.*) https://$host$1 permanent;
}

server {
 listen 443 ssl http2;
 server_name odoo.yourdomain.com;
 proxy_read_timeout 720s;
 proxy_connect_timeout 720s;
 proxy_send_timeout 720s;

 # Ajouter des en-têtes pour le mode proxy odoo
 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;

 # Paramètres SSL
 ssl_certificate /etc/letsencrypt/live/odoo.yourdomain.com/fullchain.pem;
 ssl_certificate_key /etc/letsencrypt/live/odoo.yourdomain.com/privkey.pem;
 ssl_session_timeout 1d;
 ssl_session_cache shared:MozSSL:10m;  # environ 40000 sessions
 ssl_session_tickets off;
 ssl_protocols TLSv1.2 TLSv1.3;
 ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
 ssl_prefer_server_ciphers off;
 ssl_dhparam /etc/ssl/certs/dhparam.pem;

 # journal
 access_log /var/log/nginx/odoo.access.log;
 error_log /var/log/nginx/odoo.error.log;

 # Rediriger les requêtes longpoll vers le port longpolling d'odoo
 location /longpolling {
 proxy_pass http://odoochat;
 }

 # Rediriger les requêtes vers le serveur backend d'odoo
 location / {
   proxy_redirect off;
   proxy_pass http://odoo;
 }

 # gzip commun
 gzip_types text/css text/scss text/plain text/xml application/xml application/json application/javascript;
 gzip on;
}

Appuyez sur Ctrl + X pour fermer l’éditeur et appuyez sur Y lorsque vous y êtes invité pour enregistrer le fichier.

Activez ce fichier de configuration en le liant au répertoire sites-enabled.

$ sudo ln -s /etc/nginx/sites-available/odoo.conf /etc/nginx/sites-enabled/

Testez la configuration de Nginx.

$ sudo nginx -t

Installer SSL

Nous allons installer SSL en utilisant le service Let’s Encrypt.

Pour cela, installez Certbot.

$ sudo apt install certbot

Arrêtez Nginx car il interférera avec le processus Certbot.

$ sudo systemctl stop nginx

Générez le certificat. Nous devons également créer un certificat DHParams.

$ sudo certbot certonly --standalone -d odoo.yourdomain.com --preferred-challenges http --agree-tos -n -m [email protected] --keep-until-expiring 
$ sudo systemctl start nginx
$ sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048

Nous devons également configurer un cron job pour renouveler automatiquement le SSL. Pour ouvrir l’éditeur crontab, exécutez la commande suivante.

$ sudo crontab -e

Collez la ligne suivante en bas.

25 2 * * * /usr/bin/certbot renew --quiet --pre-hook "systemctl stop nginx" --post-hook "systemctl start nginx"

Le cron job ci-dessus exécutera certbot à 2h25 chaque jour. Vous pouvez le changer à votre convenance.

Enregistrez le fichier en appuyant sur Ctrl + X et en entrant Y lorsque vous y êtes invité.

Démarrer Odoo

Maintenant que tout est configuré, nous pouvons redémarrer le serveur Odoo.

$ sudo systemctl start odoo-server

Lancez Odoo dans votre navigateur via https://odoo.yourdomain.com. Vous obtiendrez un écran décrit précédemment. Entrez les détails requis pour créer la base de données et vous devriez vous connecter à Odoo et voir un écran comme celui-ci.

Page d'accueil Odoo

Conclusion

Cela conclut notre tutoriel sur l’installation d’Odoo sur un serveur Ubuntu 20.04. Si vous avez des questions, posez-les dans les commentaires ci-dessous.

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.