Installer Odoo ERP 17 sur Rocky, Alma, CentOS, RHEL 9|8
Au moment de la rédaction de cet article, Odoo ERP 17 est la version la plus récente du formidable logiciel de planification des ressources d'entreprise (ERP) open source, conçu pour aider vos processus d'affaires à rester rationalisés. Odoo ERP vous offre une plateforme avec des applications intégrées pour résoudre tous vos problèmes d'entreprise, de la gestion des ressources humaines, CRM, gestion des stocks, finances, fabrication, ventes au commerce électronique. Dans Odoo ERP, toutes ces intégrations sont réparties selon une approche modulaire qui vous permet de commencer avec quelques modules et d'en intégrer d'autres selon vos besoins. Cela fait d'Odoo une solution extrêmement flexible et évolutive.
Pour installer Odoo ERP 17 sur Rocky Linux, AlmaLinux, CentOS ou RHEL 9/8, vous devez suivre plusieurs étapes :
- Installation des dépendances nécessaires pour exécuter Odoo 17
- Création d'un environnement virtuel Python
- Installation d'Odoo 17 sur Rocky/AlmaLinux/RHEL 9|8
- Configuration d'Odoo et du serveur web
- Accéder à et utiliser Odoo
Pour les fonctionnalités d'Odoo ERP 17, consultez les notes de version d'Odoo 17
Prérequis
Avant de pouvoir continuer, vous devrez remplir les conditions suivantes.
Exigences du système :
- Système d'exploitation : Rocky, Alma, CentOS Stream ou RHEL 8/9 installé
- CPU : Processeur double cœur minimum (un quad-core est préférable).
- RAM : Minimum 2 Go de mémoire (Plus vous avez 4 Go ou plus, mieux c'est).
- Disque : Minimum 20 Go d’espace disque disponible pour stocker les données d’Odoo.
Exigences logicielles :
- Python : Python 3.10 ou supérieur.
- PostgreSQL : PostgreSQL 12 ou version supérieure.
- Node.js et npm : Node.js 12.x ou supérieur et npm pour la gestion des ressources.
- Wkhtmltopdf : Une version spécifique de wkhtmltopdf (0.12.5 ou 0.12.6) est requise pour l'impression des rapports PDF.
- Nginx ou Apache : Pour le proxy inverse (Nginx est généralement préféré).
Commençons l'installation d'Odoo ERP.
Étape 1 – Installer les dépendances de construction
Mettez à jour votre système avant toute installation :
sudo dnf -y updateSi vous avez des mises à jour du noyau, envisagez de redémarrer le système avant de continuer :
sudo rebootEnsuite, installez les outils de développement sur votre système.
sudo dnf groupinstall -y "Development Tools"Installez des bibliothèques supplémentaires qui peuvent être nécessaires lors de la compilation d'Odoo à partir des sources :
sudo dnf install -y vim git gcc bzip2-devel redhat-rpm-config libxslt-devel openldap-devel libjpeg-devel freetype-develÉtape 2 – Installer Python 3.11 et Node.js
Nous devons installer Python 3.10 ou une version supérieure. Dans cet article, nous utiliserons Python 3.11.
sudo dnf install python3.11 python3.11-devel python3.11-pipVérifiez qu’il est installé correctement en consultant la version.
$ python3.11 --version
Python 3.11.9Installons également Node.js. Il n'y a pas de version spécifique, nous utiliserons Node.js v18.
sudo dnf module reset nodejs -y
sudo dnf module install nodejs:18 -yVérifiez en consultant le numéro de version de Node.js.
$ node --version
v18.20.2Installez le module node rtlcss en utilisant npm :
sudo npm install -g rtlcssInstallez également Less et le plugin Less Clean CSS :
sudo npm install -g less less-plugin-clean-cssÉtape 3 – Installer et configurer la base de données PostgreSQL
PostgreSQL 12 ou une version ultérieure est requis. Nous pouvons installer PostgreSQL 16, qui est disponible dans les dépôts APPStream du système d’exploitation. Réinitialiser le module PostgreSQL actuel.
sudo dnf module -y disable postgresqlActiver le module PostgreSQL 16.
sudo dnf install -y @postgresql:16Installez également le paquet postgresql-devel.
sudo dnf install -y postgresql-develInitialiser le serveur de base de données.
sudo postgresql-setup initdbDémarrez et activez le service de base de données.
sudo systemctl enable --now postgresqlEnfin, créez l'utilisateur de base de données odoo. Fournissez un mot de passe pour l'utilisateur lorsque vous y êtes invité.
sudo su - postgres -c "createuser -s odoo"Pour créer un utilisateur avec mot de passe, exécutez :
sudo -u postgres createuser odoo -U postgres -dPPour le serveur de base de données PostgreSQL à distance, vous devrez activer les connexions distantes sur votre serveur de base de données afin qu'Odoo puisse s'y connecter.
Étape 4 – Installer wkhtmltopdf
Wkhtmltopdf est un outil CLI open-source utilisé par Odoo pour convertir du HTML en PDF et autres formats d'image grâce au puissant moteur de rendu Webkit. Cela est nécessaire pour la génération de documents tels que les factures, les rapports et d'autres documents imprimables.
Téléchargez et installez le paquet RPM wkhtmltopdf.
- Systèmes basés sur RHEL 9
wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-2/wkhtmltox-0.12.6.1-2.almalinux9.x86_64.rpm
sudo dnf install -y ./wkhtmltox-0.12.6.1-2.almalinux9.x86_64.rpm- Systèmes basés sur RHEL 8
wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-2/wkhtmltox-0.12.6.1-2.almalinux8.x86_64.rpm
sudo dnf install -y ./wkhtmltox-0.12.6.1-2.almalinux8.x86_64.rpm
Valider l'installation :
$ wkhtmltopdf --version
wkhtmltopdf 0.12.6.1 (with patched qt)Étape 5 – Configurer l'environnement Python d'Odoo
Créer un utilisateur appelé odoo qui exécutera les services Odoo.
sudo useradd -m -U -r -d /opt/odoo -s /bin/bash odooInstaller virtualenv :
sudo pip3.11 install virtualenvPassez au compte utilisateur odoo créé.
sudo su - odooClonez le dépôt Github d’Odoo localement.
git clone --depth 1 --branch 17.0 --single-branch https://github.com/odoo/odoo.gitUtilisez la commande virtualenv pour créer un environnement virtuel Python pour Odoo ERP.
virtualenv odoo-venvActivez l'environnement virtuel créé.
source odoo-venv/bin/activateMettez à jour pip après l'activation.
pip3.11 install --upgrade pipInstaller le paquet Python wheel dans l'environnement
pip3.11 install wheelInstaller les dépendances Python d'Odoo 17
pip3.11 install -r odoo/requirements.txtPour lister tous les packages Python installés dans l'environnement virtuel, exécutez la commande suivante :
pip3.11 listCréez un répertoire qui stockera tous les modules complémentaires tiers.
mkdir odoo/custom-addonsQuitter l'environnement virtuel.
exitÉtape 6 – Configurer Odoo ERP
Copiez le fichier de configuration exemple d’Odoo dans le répertoire /etc de votre système.
sudo cp /opt/odoo/odoo/debian/odoo.conf /etc/odoo.confLe fichier odoo.conf contient les configurations clés nécessaires au bon fonctionnement d'Odoo. Ouvrez le fichier pour le modifier.
# Open with vim
sudo vim /etc/odoo.conf
# Open with nano
sudo nano /etc/odoo.confAjustez les paramètres pour qu'ils ressemblent à l'image ci-dessous.
[options]
; This is the password that allows database operations:
admin_passwd = Str0ngAdminPasw0rd
db_host = False
db_port = False
db_user = odoo
db_password = False
addons_path = /opt/odoo/odoo/addons, /opt/odoo/odoo/custom-addons
default_productivity_apps = True
xmlrpc_port = 8069Pour un serveur PostgreSQL à distance, configurez :
- db_host : Adresse IP du serveur de base de données PostgreSQL
- db_password : Mot de passe pour l'utilisateur créé sur la base de données distante
- db_user : Utilisateur de base de données à distance créé.
Attribuez les permissions appropriées au fichier :
sudo chown odoo:odoo /etc/odoo.conf
sudo chmod 640 /etc/odoo.confCréer un service systemd pour Odoo.
sudo tee /etc/systemd/system/odoo.service<<EOF
[Unit]
Description=Odoo ERP System
Documentation=http://www.odoo.com
Requires=postgresql.service
After=network.target postgresql.service
[Service]
Type=simple
SyslogIdentifier=odoo
PermissionsStartOnly=true
User=odoo
Group=odoo
ExecStart=/opt/odoo/odoo-venv/bin/python3.11 /opt/odoo/odoo/odoo-bin \
--config=/etc/odoo.conf \
--addons-path=/opt/odoo/odoo/addons/ \
--logfile /var/log/odoo/odoo-server.log
StandardOutput=journal+console
KillMode=mixed
[Install]
WantedBy=multi-user.target
EOFCréer le répertoire des journaux.
sudo mkdir /var/log/odoo/
sudo chown -R odoo:odoo /var/log/odoo/Démarrez et activez le service odoo.
sudo systemctl daemon-reload
sudo systemctl enable --now odoo.serviceVérifiez si le service fonctionne correctement.
$ systemctl status odoo
● odoo.service - Odoo ERP System
Loaded: loaded (/etc/systemd/system/odoo.service; enabled; vendor preset: disabled)
Active: active (running) since Thu 2024-07-18 11:34:34 UTC; 21s ago
Docs: http://www.odoo.com
Main PID: 70809 (python3.11)
Tasks: 4 (limit: 48750)
Memory: 88.2M
CGroup: /system.slice/odoo.service
└─70809 /opt/odoo/odoo-venv/bin/python3.11 /opt/odoo/odoo/odoo-bin --config=/etc/odoo.conf --addons-path=/opt/odoo/odoo/addons/ --logfile /var/log/odoo/odoo-server.log
Jul 18 11:34:34 rocky8.cloudspinx.com systemd[1]: Started Odoo ERP System.Étape 7 – Configurer firewalld
Le service écoute sur le port 8069.
$ ss -tunelp | grep 8069
tcp LISTEN 0 128 0.0.0.0:8069 0.0.0.0:* users:(("python3.11",pid=70809,fd=4)) uid:989 ino:115353 sk:5 <->Si vous avez firewalld, autorisez le port 8069
sudo firewall-cmd --add-port=8069/tcp --permanent
sudo firewall-cmd --reloadVous pouvez accéder à la console web d'Odoo sur http://serverip:8069 et terminer la configuration.
Entrez la valeur de admin_passwd définie dans odoo.conf pour le mot de passe principal. Spécifiez le nom de la base de données à créer, par exemple odoo17. Ensuite, créez le premier utilisateur administrateur en fournissant l'adresse e-mail et le mot de passe. Vous pouvez également, si vous le souhaitez, définir le numéro de téléphone, la langue et le pays.
Après avoir terminé la configuration, connectez-vous avec l'utilisateur admin créé et son mot de passe.
Vous arriverez au tableau de bord Odoo pour activer les modules, etc.
Étape 8 – Configurer le proxy Nginx
Nous pouvons utiliser Nginx pour proxyfier les requêtes vers Odoo ERP. Installez le paquet nginx.
sudo dnf -y install nginxActiver le service pour qu'il démarre automatiquement au démarrage du système.
sudo systemctl enable nginxCréer un fichier de configuration Nginx pour le service Odoo.
sudo vim /etc/nginx/conf.d/odoo.confCopiez et modifiez le contenu suivant. Vous devez remplacer odoo.example.com par votre nom de domaine réel.
# Odoo Upstreams
upstream odooserver {
server 127.0.0.1:8069;
}
server {
listen 80;
server_name odoo.example.com;
access_log /var/log/nginx/odoo_access.log;
error_log /var/log/nginx/odoo_error.log;
# Proxy settings
proxy_read_timeout 720s;
proxy_connect_timeout 720s;
proxy_send_timeout 720s;
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;
# Request for root domain
location / {
proxy_redirect off;
proxy_pass http://odooserver;
}
# Cache static files
location ~* /web/static/ {
proxy_cache_valid 200 90m;
proxy_buffering on;
expires 864000;
proxy_pass http://odooserver;
}
# Gzip Compression
gzip_types text/css text/less text/plain text/xml application/xml application/json application/javascript;
gzip on;
}Valider les configurations nginx.
$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successfulSi tout semble correct, redémarrez le service.
sudo systemctl restart nginxAccédez au tableau de bord web d'Odoo sur http://yourdomain.com
Étape 9 – Utilisation de SSL Let’s Encrypt
Pour les serveurs sur un domaine public, vous pouvez utiliser le certificat SSL gratuit de Let’s Encrypt.
Installez certbot et son module Nginx.
sudo dnf install epel-release
sudo dnf install certbot python3-certbot-nginx -yDemande de certificat SSL Let’s Encrypt.
DOMAIN=odoo.example.com #replace with your actual domain
sudo certbot --nginx -d $DOMAIN --agree-tosSi vous ne voulez pas fournir d'adresse courriel, utilisez L
sudo certbot --nginx -d $DOMAIN --agree-tos --register-unsafely-without-emailExemple de sortie :
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Account registered.
Requesting a certificate for odoo.example.com
Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/odoo.example.com/fullchain.pem
Key is saved at: /etc/letsencrypt/live/odoo.example.com/privkey.pem
This certificate expires on 2024-10-16.
These files will be updated when the certificate renews.
Certbot has set up a scheduled task to automatically renew this certificate in the background.
Deploying certificate
Successfully deployed certificate for odoo.cloudlabske.com to /etc/nginx/conf.d/odoo.conf
Congratulations! You have successfully enabled HTTPS on https://odoo.example.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
If you like Certbot, please consider supporting our work by:
* Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
* Donating to EFF: https://eff.org/donate-le
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Il configurera automatiquement /etc/nginx/conf.d/odoo.conf pour inclure SSL.
cat /etc/nginx/conf.d/odoo.confConclusion
Nous avons conclu notre tutoriel sur l'installation d'Odoo sur les systèmes Linux Rocky, AlmaLinux, CentOS et RHEL 9. Nous avons commencé par préparer le serveur avec les dépendances nécessaires, puis nous avons procédé à l'installation et à la configuration d'Odoo ERP. Grâce à ses modules étendus, ses personnalisations flexibles et puissantes, Odoo constitue une solution d'affaires bien adaptée pour automatiser les processus.


