Comment installer Odoo ERP 13 sur CentOS 8

Odoo est un logiciel ERP gratuit, open-source et très populaire qui offre un large éventail d’applications commerciales, notamment la gestion de la relation client (CRM), le pipeline de vente, la gestion de projet, la fabrication, la facturation, la comptabilité, le commerce électronique et bien d’autres encore. Il s’agit d’une application basée sur le Web et entièrement équipée qui t’aide à maintenir l’ERP dans toute entreprise. Odoo est livré avec 30 modules de base et plus de 4500 modules créés par la communauté qui t’aident à le personnaliser de la petite boutique à la société de niveau entreprise.

Dans ce tutoriel, nous allons apprendre à installer et à configurer Odoo 13 avec Nginx comme proxy inverse sur le serveur CentOS 8.

Exigences

  • Un serveur exécutant CentOS 8 avec au moins 2 Go de RAM.
  • Un nom de domaine valide pointant vers l’IP de ton serveur. Dans ce tutoriel, nous utiliserons le domaine exmaple.com.
  • Un mot de passe root est configuré sur le serveur.

Pour commencer

Tout d’abord, mets à jour le système et installe le référentiel EPEL avec la commande suivante :

dnf update
dnf install epel-release

Ensuite, tu devras installer certains outils et dépendances nécessaires pour construire le Odoo sur ton système.

Tu peux les installer tous avec la commande suivante :

dnf install python36 python36-devel git gcc wget nodejs libxslt-devel bzip2-devel openldap-devel libjpeg-devel freetype-devel

Une fois que tous les paquets sont installés, tu peux passer à l’étape suivante.

Créer un utilisateur Odoo

Ensuite, tu devras créer un nouvel utilisateur système avec le nom odoo et le répertoire personnel /opt/odoo en utilisant la commande suivante :

useradd -m -U -r -d /opt/odoo -s /bin/bash odoo

Une fois que tu as terminé, tu peux passer à l’étape suivante.

Installer et configurer PostgreSQL

Odoo utilise PostgreSQL pour stocker ses données. Tu dois donc installer PostgreSQL sur ton serveur. Tu peux l’installer avec la commande suivante :

dnf install postgresql postgresql-server postgresql-contrib

Une fois installé, initialise la base de données avec la commande suivante :

/usr/bin/postgresql-setup initdb

Tu devrais obtenir le résultat suivant :

 * Initializing database in '/var/lib/pgsql/data'
 * Initialized, logs are in /var/lib/pgsql/initdb_postgresql.log

Ensuite, démarre le service PostgreSQL et active-le pour qu’il démarre après le redémarrage du système avec la commande suivante :

systemctl start postgresql
systemctl enable postgresql

Tu peux maintenant vérifier le PostgreSQL à l’aide de la commande suivante :

systemctl status postgresql

Tu devrais voir la sortie suivante :

? postgresql.service - PostgreSQL database server
   Loaded: loaded (/usr/lib/systemd/system/postgresql.service; disabled; vendor preset: disabled)
   Active: active (running) since Mon 2019-12-02 01:01:44 EST; 6s ago
  Process: 31805 ExecStartPre=/usr/libexec/postgresql-check-db-dir postgresql (code=exited, status=0/SUCCESS)
 Main PID: 31808 (postmaster)
    Tasks: 8 (limit: 12552)
   Memory: 16.5M
   CGroup: /system.slice/postgresql.service
           ??31808 /usr/bin/postmaster -D /var/lib/pgsql/data
           ??31809 postgres: logger process   
           ??31811 postgres: checkpointer process   
           ??31812 postgres: writer process   
           ??31813 postgres: wal writer process   
           ??31814 postgres: autovacuum launcher process   
           ??31815 postgres: stats collector process   
           ??31816 postgres: bgworker: logical replication launcher   

Ensuite, tu devras créer un nouvel utilisateur PostgreSQL avec le même nom que l’utilisateur système comme indiqué ci-dessous :

su - postgres -c "createuser -s odoo"

Installe Wkhtmltopdf

Ensuite, tu devras installer l’outil wkhtmltopdf dans ton système pour que Odoo puisse imprimer des rapports PDF. Tu peux l’installer avec la commande suivante :

wget https://downloads.wkhtmltopdf.org/0.12/0.12.5/wkhtmltox-0.12.5-1.centos7.x86_64.rpm
dnf localinstall wkhtmltox-0.12.5-1.centos7.x86_64.rpm

Une fois installé, tu peux passer à l’étape suivante.

Installer et configurer Odoo 13

Tout d’abord, passe à l’utilisateur Odoo avec la commande suivante :

su - odoo

Ensuite, télécharge la dernière version de l’Odoo 13 depuis le dépôt Git à l’aide de la commande git :

git clone https://www.github.com/odoo/odoo --depth 1 --branch 13.0 /opt/odoo/odoo13

Ensuite, crée un nouvel environnement virtuel pour l’instance Odoo 13 avec la commande suivante :

cd /opt/odoo
python3 -m venv odoo13-venv

Ensuite, active l’environnement virtuel avec la commande suivante :

source odoo13-venv/bin/activate

Tu devrais obtenir le résultat suivant :

(odoo13-venv) [[email protected] ~]$

Ensuite, installe tous les modules Python requis pour Odoo 13 avec la commande suivante :

pip3 install -r odoo13/requirements.txt

Une fois que tous les modules requis sont installés, désactive l’environnement virtuel avec la commande suivante: :

deactivate

Enfin, quitte l’utilisateur Odoo avec la commande suivante :

exit

Ensuite, crée un nouveau répertoire pour stocker les modules personnalisés Odoo et les journaux Odoo :

mkdir /opt/odoo/odoo13-custom-addons
mkdir /var/log/odoo13
touch /var/log/odoo13/odoo.log

Ensuite, change la propriété des deux répertoires à l’utilisateur Odoo avec la commande suivante :

chown -R odoo:odoo /opt/odoo/odoo13-custom-addons
chown -R odoo:odoo /var/log/odoo13/

Ensuite, crée un nouveau fichier de configuration pour Odoo 13 à l’aide de la commande suivante :

nano /etc/odoo.conf

Ajoute les lignes suivantes :

[options]
admin_passwd = [email protected]
db_host = False
db_port = False
db_user = odoo
db_password = False
xmlrpc_port = 8069
logfile = /var/log/odoo13/odoo.log
logrotate = True
addons_path = /opt/odoo/odoo13/addons,/opt/odoo/odoo13-custom-addons

Sauvegarde et ferme le fichier lorsque tu as terminé.

Crée un fichier de service Systemd pour Odoo 13

Ensuite, tu devras créer un nouveau fichier d’unité Systemd pour Odoo 13 afin de gérer le service Odoo.

Tu peux le créer avec la commande suivante :

nano /etc/systemd/system/odoo13.service

Ajoute les lignes suivantes :

[Unit]
Description=Odoo13
#Requires=postgresql-10.6.service
#After=network.target postgresql-10.6.service

[Service]
Type=simple
SyslogIdentifier=odoo13
PermissionsStartOnly=true
User=odoo
Group=odoo
ExecStart=/opt/odoo/odoo13-venv/bin/python3 /opt/odoo/odoo13/odoo-bin -c /etc/odoo.conf
StandardOutput=journal+console

[Install]
WantedBy=multi-user.target

Sauvegarde et ferme le fichier. Ensuite, recharge le démon systemd avec la commande suivante :

systemctl daemon-reload

Ensuite, démarre le service Odoo et active-le pour qu’il démarre après le redémarrage du système avec la commande suivante :

systemctl start odoo13
systemctl enable odoo13

Tu peux aussi vérifier le statut d’Odoo avec la commande suivante :

systemctl status odoo13

Tu devrais obtenir le résultat suivant :

? odoo13.service - Odoo13
   Loaded: loaded (/etc/systemd/system/odoo13.service; disabled; vendor preset: disabled)
   Active: active (running) since Mon 2019-12-02 01:15:43 EST; 2s ago
 Main PID: 17022 (python3)
    Tasks: 4 (limit: 12552)
   Memory: 63.7M
   CGroup: /system.slice/odoo13.service
           ??17022 /opt/odoo/odoo13-venv/bin/python3 /opt/odoo/odoo13/odoo-bin -c /etc/odoo.conf

Dec 02 01:15:43 centos8 systemd[1]: Started Odoo13.

Par défaut, Odoo écoute sur le port 8069. Tu peux le vérifier avec la commande suivante :

netstat -plntu | grep 8069

Tu devrais voir la sortie suivante :

tcp        0      0 0.0.0.0:8069            0.0.0.0:*               LISTEN      17022/python3

Configurer Nginx en tant que Reverse Proxy pour Odoo 13

Ensuite, tu devras installer et configurer Nginx comme proxy inverse pour l’instance Odoo 13.

Tout d’abord, installe le serveur web Nginx avec la commande suivante :

dnf install nginx

Une fois installé, crée un nouveau fichier de configuration d’hôte virtuel avec la commande suivante :

nano /etc/nginx/conf.d/odoo13.conf

Ajoute les lignes suivantes :

upstream odoo {
 server 127.0.0.1:8069;
}
server {
    listen 80;
    server_name example.com;

    access_log /var/log/nginx/odoo13.access.log;
    error_log /var/log/nginx/odoo13.error.log;

        location / {
        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;


        proxy_redirect off;
        proxy_pass http://odoo;
    }

location ~* /web/static/ {
        proxy_cache_valid 200 90m;
        proxy_buffering on;
        expires 864000;
        proxy_pass http://odoo;
    }

    gzip_types text/css text/less text/plain text/xml application/xml application/json application/javascript;
    gzip on;
}

Enregistre et ferme le fichier lorsque tu as terminé. Ensuite, démarre le service Nginx et active-le pour qu’il démarre après le redémarrage du système avec la commande suivante :

systemctl start nginx
systemctl enable nginx

Tu peux vérifier l’état du service Nginx à l’aide de la commande suivante :

systemctl status nginx

Tu devrais voir la sortie suivante :

? nginx.service - The nginx HTTP and reverse proxy server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
   Active: active (running) since Mon 2019-12-02 01:25:15 EST; 6s ago
  Process: 17244 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
  Process: 17241 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
  Process: 17239 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)
 Main PID: 17245 (nginx)
    Tasks: 3 (limit: 12552)
   Memory: 5.4M
   CGroup: /system.slice/nginx.service
           ??17245 nginx: master process /usr/sbin/nginx
           ??17246 nginx: worker process
           ??17247 nginx: worker process

Dec 02 01:25:15 centos8 systemd[1]: Starting The nginx HTTP and reverse proxy server...
Dec 02 01:25:15 centos8 nginx[17241]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
Dec 02 01:25:15 centos8 nginx[17241]: nginx: configuration file /etc/nginx/nginx.conf test is successful
Dec 02 01:25:15 centos8 systemd[1]: Started The nginx HTTP and reverse proxy server.

Configurer le pare-feu

Ensuite, tu devras autoriser le service Nginx à accéder à l’instance Odoo 13 depuis le système distant via firewalld.

Tu peux exécuter la commande suivante pour autoriser le service Nginx via firewalld :

firewall-cmd --permanent --zone=public --add-service=nginx
firewall-cmd --reload

Par défaut, SELinux est activé dans CentOS 8. Tu devras donc autoriser HTTP via SELinux. Tu peux l’autoriser avec la commande suivante :

setsebool -P httpd_can_network_connect on

Accéder à l’interface Web d’Odoo 13

Maintenant, Odoo 13 est installé et configuré. Il est temps d’accéder à l’interface Web d’Odoo 13.

Ouvre ton navigateur Web et tape l’URL http://example.com. Tu seras redirigé vers la page suivante :

Configurer les détails de la base de données pour Odoo ERP

Maintenant, indique ton mot de passe principal, le nom de la base de données, l’email, le mot de passe, le pays et clique sur le bouton Créer une base de données. Tu seras redirigé vers la page d’administration d’Odoo 13 :

Odee ERP Apps

Conclusion

Dans le tutoriel ci-dessus, tu as appris à installer et à configurer Odoo 13 sur un serveur CentOS 8. Tu as également appris à configurer Nginx comme proxy inverse pour Odoo 13. Tu peux maintenant personnaliser ton instance Odoo 13 en fonction des besoins de ton entreprise.

Vous aimerez aussi...