Odoo, ERP opensource
Odoo est un ERP OpenSource permettant aux sociétés de taille moyenne (TPE, PME) de disposer de l'ensemble des services de gestion des grandes entreprises : CRM, Facturation, ... Ce logiciel peut facilement s'auto héberger sur un environnement de type Linux et c'est ce que nous allons voir avec Ubuntu 24.04 ainsi qu'une variante avec Docker.
Une fois que vous avez une installation Ubuntu serveur fonctionnelle, voici les différentes étapes à suivre pour installer Odoo.
# mise à jour du système
sudo apt-get update -y && sudo apt-get upgrade -y
# installation des dépendances Odoo : python3 notamment
sudo apt-get install -y python3-pip python3-dev python3-venv libxml2-dev libxslt1-dev zlib1g-dev libsasl2-dev libldap2-dev build-essential libssl-dev libffi-dev libmysqlclient-dev libjpeg-dev libpq-dev libjpeg8-dev liblcms2-dev libblas-dev libatlas-base-dev -y
# installation de npm et node-less pour la gestion des css
sudo apt-get install -y npm
sudo ln -s /usr/bin/nodejs /usr/bin/node
sudo npm install -g less less-plugin-clean-css
sudo apt-get install -y node-less
# téléchargement du logiciel htmltopdf pour générer des rapports
sudo wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox_0.12.6-1.bionic_amd64.deb
# installation de dépendances spécifiques à wkhtmltopdf
sudo apt install fontconfig xfonts-75dpi xfonts-base
wget http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.0g-2ubuntu4_amd64.deb
sudo dpkg -i libssl1.1_1.1.0g-2ubuntu4_amd64.deb
sudo dpkg -i wkhtmltox_0.12.6-1.bionic_amd64.deb
# correction des dépendances manquantes
sudo apt install -f
# installation de postgresql puisque Odoo se sert de ce service de bases de données
sudo apt-get install postgresql -y
sudo systemctl start postgresql && sudo systemctl enable postgresql
sudo systemctl status postgresql
# Création d'un utilisateur dédié pour la gestion de Odoo. C'est un utilisateur système car défini avec l'option -r de useradd.
# Il n'y aura donc pas de forçage du changement de mot de passe (aging).
# Un groupe du même nom que l'utilisateur est créé et l'utilisateur est automatiquement ajouté à ce groupe.
#
sudo useradd -m -U -r -d /opt/odooadmin -s /bin/bash odooadmin
sudo passwd odooadmin
# Création d'un utilisateur Odoo pour Postgresql.
# On décide de lui donner le même nom que l'utilisateur système
sudo su - postgres -c "createuser -s odooadmin"
# On télécharge Odoo depuis Github (avec l'identité odooadmin)
su - odooadmin
git clone https://www.github.com/odoo/odoo --depth 1 --branch 17.0 /opt/odooadmin/odoo17
cd /opt/odooadmin
# Création d'un environnement virtuel Python pour recevoir le téléchargement des fichiers requis pour Odoo
python3 -m venv odoo17-venv
source odoo17-venv/bin/activate
pip install --upgrade pip
pip3 install wheel
pip3 install -r odoo17/requirements.txt
deactivate
# Création d'un dossier pour les add-ons de Odoo
mkdir /opt/odooadmin/odoo17-custom-addons
chown -R odooadmin:odooadmin /opt/odooadmin/odoo17-custom-addons
exit
sudo mkdir -p /var/log/odoo17
sudo touch /var/log/odoo17.log
sudo chown -R odooadmin:odooadmin /var/log/odoo17
# Création du fichier de configuration de Odoo version 17
sudo touch /etc/odoo17.conf
sudo nano /etc/odoo17.conf
# Remplacer le mot de passe par un mot de passe fort de votre choix
[options]
admin_passwd = Password$
db_host = False
db_port = False
db_user = odooadmin
db_password = False
xmlrpc_port = 8069
logfile = /var/log/odoo17/odoo17.log
addons_path = /opt/odooadmin/odoo17/addons,/opt/odooadmin/odoo17-custom-addons
# Création d'un fichier de service système afin de démarrer Odoo automatiquement à la mise en route du serveur Ubuntu
sudo touch /etc/systemd/system/odoo17.service
sudo nano /etc/systemd/system/odoo17.service
[Unit]
Description=odoo17
After=network.target postgresql@14-main.service
[Service]
Type=simple
SyslogIdentifier=odoo17
PermissionsStartOnly=true
User=odooadmin
Group=odooadmin
ExecStart=/opt/odooadmin/odoo17-venv/bin/python3 /opt/odooadmin/odoo17/odoo-bin -c /etc/odoo17.conf
StandardOutput=journal+console
[Install]
WantedBy=multi-user.target
# Démarrage du service Odoo manuellement la première fois
sudo systemctl daemon-reload
sudo systemctl start odoo17 && sudo systemctl enable odoo17
sudo systemctl status odoo17
# Pour se connecter à Odoo, pointez sur l'IP de votre serveur et sur le port 8069
http://IP:8069
Lors de la première connexion, vous serez invité à saisir le mot de passe de votre compte principal, celui qui a été défini dans le
fichier de configuration Odoo17 (/etc/odoo17.conf), ainsi que le nom de la base de donnée qui sera créée pour Odoo.
Connectez-vous ensuite avec l'utilisateur déclaré dans la page précédente. La connexion se fait avec l'adresse email saisie précédemment.
Vous êtes maintenant prêt à utiliser ce bel outil open source pour la gestion de votre entreprise.
Remarque : comme tout outil offrant la possibilité d'être utilisé localement et à distance, il est recommandé d'utiliser un reverse proxy (comme nginx) afin de pouvoir gérer le domaine et le certificat externe qui va avec afin de pouvoir vous connecter en toute sécurité depuis l'extérieur.
Il nous faudra disposer d'une machine Docker. Pour installer Docker sur Ubuntu, consultez https://www.gerbelotbarillon.com/docker.php
Pour Odoo nous allons créer un container Postgresql qui disposera d'un environnement persistant pour stocker les données de la base. Un second container contiendra l'installation de l'application Odoo.
Sur le serveur nous allons créer un fichier docker compose compose.yaml pour ces différentes installations.
version: '3'
services:
db:
image: postgres:17
user: root
environment:
- POSTGRES_USER=odoo
- POSTGRES_PASSWORD=odoo
- POSTGRES_DB=postgres
volumes:
- ./postgresql:/var/lib/postgresql/data
odoo18:
image: odoo:18
user: root
depends_on:
- db
ports:
- "8069:8069"
environment:
- HOST=db
- USER=odoo
- PASSWORD=odoo
volumes:
- ./etc:/etc/odoo
- ./addons:/mnt/extra-addons
Pour réaliser la mise en place, il faut simplement lancer
$ sudo docker compose up
Maintenant que l'installation est réalisée, il suffit d'ouvrir une connexion sur le service web par http://@ip-odoo:8069. A la première ouverture il faudra renseigner les champs de l'administrateur d'Odoo. Ensuite c'est comme pour la configuration en on-premise.
Si par la suite vous avez besoin de vous connecter sur le container :
$ sudo docker exec -it container_id bash