Odoo est une solution de gestion d'entreprise open-source qui offre une large gamme d'applications pour la gestion des entreprises. Dans cet article, nous allons vous montrer comment installer Odoo 18 sur un serveur Debian 12, de l'installation des dépendances à la mise en place d'un reverse proxy pour accéder à Odoo via un domaine sécurisé en HTTPS.
Prérequis
Avant de commencer l'installation, assurez-vous d'avoir une installation propre de Debian 12 avec un accès administrateur. Ce guide suppose également que vous disposez d'un accès SSH à votre serveur.
1. Mise à jour de votre système
La première étape consiste à s'assurer que votre système est à jour. Exécutez les commandes suivantes pour mettre à jour tous les paquets installés sur votre système Debian 12.
sudo apt-get update && sudo apt-get upgrade -y
Cela garantit que votre système dispose des dernières versions de logiciels et de correctifs de sécurité.
2. Configurer le pare-feu avec UFW
La sécurité est primordiale, c'est pourquoi nous allons configurer un pare-feu simple à l'aide de UFW (Uncomplicated Firewall). Suivez les étapes ci-dessous :
Installation de UFW
sudo apt install ufw
Autoriser les connexions SSH
sudo ufw allow OpenSSH sudo ufw enable
Autoriser les connexions HTTP et HTTPS
sudo ufw allow "WWW Full" sudo ufw reload
Vérification du statut du pare-feu
sudo ufw status
Cela permet de s'assurer que le pare-feu est bien actif et que les connexions nécessaires (SSH, HTTP, HTTPS) sont autorisées.
3. Installation des dépendances nécessaires
Odoo 18 nécessite Python 3.11, qui est déjà inclus dans Debian 12. Nous allons maintenant installer toutes les dépendances nécessaires à Odoo, y compris les bibliothèques pour les graphiques, la compression, et les connexions à la base de données PostgreSQL.
sudo apt install build-essential wget git python3.11-dev python3.11-venv \ libfreetype-dev libxml2-dev libzip-dev libsasl2-dev \ node-less libjpeg-dev zlib1g-dev libpq-dev \ libxslt1-dev libldap2-dev libtiff5-dev libopenjp2-7-dev libcap-dev
Ces paquets sont nécessaires pour faire fonctionner Odoo de manière optimale.
4. Créer un utilisateur système pour Odoo
Il est recommandé de créer un utilisateur dédié pour exécuter Odoo afin d'éviter les conflits avec d'autres processus système. Exécutez la commande suivante pour ajouter un utilisateur :
sudo useradd -m -d /opt/odoo18 -Urs /bin/bash odoo18
Cela crée un utilisateur nommé odoo18 avec un répertoire personnel situé à /opt/odoo18.
5. Installation de PostgreSQL
Odoo fonctionne avec PostgreSQL pour la gestion des bases de données. Debian 12 inclut PostgreSQL dans ses dépôts officiels, donc l'installation est simple.
sudo apt install postgresql
Ensuite, nous devons créer un utilisateur PostgreSQL pour Odoo avec le même nom que l'utilisateur système :
sudo su - postgres -c "createuser -s odoo18"
6. Installation de wkhtmltopdf
Odoo utilise wkhtmltopdf pour générer des rapports au format PDF à partir de pages HTML. La version de wkhtmltopdf disponible pour Debian 12 n'est pas directement compatible, donc nous allons installer une version patchée.
wget http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2_amd64.deb sudo apt install ./libssl1.1_1.1.1f-1ubuntu2_amd64.deb wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-2/wkhtmltox_0.12.6.1-2.bullseye_amd64.deb sudo apt install ./wkhtmltox_0.12.6.1-2.bullseye_amd64.deb
En cas de problème avec l'installation, vous pouvez essayer d'exécuter :
sudo apt install -f
7. Installation d'Odoo
Nous allons maintenant installer Odoo dans un environnement Python virtuel. Commencez par vous connecter en tant qu'utilisateur odoo18 :
sudo su - odoo18
Clonez le dépôt GitHub d'Odoo 18 :
git clone https://www.github.com/odoo/odoo --depth 1 --branch 18.0 odoo18
Ensuite, créez un environnement virtuel Python et activez-le :
python3.11 -m venv odoo18-venv source odoo18-venv/bin/activate
Installez les dépendances Python nécessaires pour Odoo :
pip install wheel setuptools pip --upgrade pip install -r odoo18/requirements.txt
pip install phonenumbers
Une fois l'installation terminée, vous pouvez créer un répertoire pour les modules personnalisés d'Odoo :
mkdir /opt/odoo18/odoo18/custom-addons
Quittez ensuite l'utilisateur odoo18 pour créer le fichier de configuration d'Odoo :
exit
8. Créer le fichier de configuration d'Odoo
Créez un fichier de configuration pour Odoo dans /etc/odoo18.conf :
sudo nano /etc/odoo18.conf
Ajoutez le contenu suivant dans le fichier :
[options] admin_passwd = changemewithstrongpassword db_host = False db_port = False db_user = odoo18 db_password = False addons_path = /opt/odoo18/odoo18/addons,/opt/odoo18/odoo18/custom-addons
Remplacez password par un mot de passe plus sécurisé.
9. Créer un fichier de service systemd pour Odoo
Pour gérer Odoo en tant que service, nous devons créer un fichier unit systemd. Exécutez la commande suivante :
sudo systemctl edit odoo18 --force --full
Ajoutez le contenu suivant pour configurer Odoo comme un service :
[Unit] Description=odoo18 Requires=postgresql.service After=network.target postgresql.service [Service] Type=simple SyslogIdentifier=odoo18 PermissionsStartOnly=true User=odoo18 Group=odoo18 ExecStart=/opt/odoo18/odoo18-venv/bin/python3 /opt/odoo18/odoo18/odoo-bin -c /etc/odoo18.conf StandardOutput=journal+console [Install] WantedBy=multi-user.target
Rechargez ensuite le service systemd et activez Odoo :
sudo systemctl daemon-reload sudo systemctl enable --now odoo18
Vérifiez si Odoo fonctionne avec :
sudo systemctl status odoo18
Vous pouvez maintenant accéder à Odoo en allant sur http://votre_ip_serveur:8069.
10. Installer et configurer un reverse proxy avec Nginx
Pour accéder à Odoo via un nom de domaine, nous devons configurer un reverse proxy avec Nginx. Commencez par installer Nginx :
sudo apt install nginx
Ensuite, créez un bloc de serveur Nginx pour Odoo :
sudo nano /etc/nginx/conf.d/odoo.conf
Ajoutez la configuration suivante :
server { listen 80; server_name yourdomain.com; location / { proxy_pass http://127.0.0.1:8069; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } }
Redémarrez Nginx pour appliquer les modifications :
sudo systemctl restart nginx
11. Sécuriser avec SSL via Certbot
Enfin, pour sécuriser votre site avec HTTPS, installez Certbot et obtenez un certificat SSL :
sudo apt install certbot python3-certbot-nginx sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email votre_email@example.com -d yourdomain.com
Certbot configurera automatiquement HTTPS pour votre domaine.
Félicitations, vous avez maintenant installé Odoo 18 sur Debian 12, sécurisé votre site avec SSL et configuré un reverse proxy Nginx pour accéder à Odoo via un nom de domaine.