Odoo est un logiciel ERP gratuit, open-source et le plus populaire qui offre une large gamme d'applications commerciales, notamment la gestion de la relation client (CRM), le pipeline des ventes, la gestion de projet, la fabrication , facturation, comptabilité, commerce électronique et bien d'autres. Il s'agit d'une application Web complète qui vous aide à maintenir l'ERP dans n'importe quelle entreprise. Odoo est livré avec 30 modules de base et plus de 4500 modules créés par la communauté qui vous aident à le personnaliser en tant que petite boutique à une entreprise au niveau de l'entreprise.
Dans ce tutoriel, nous allons apprendre à installer et configurer Odoo 13 avec Nginx en tant que 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'adresse IP de votre serveur. Dans ce tutoriel, nous utiliserons le domaine exmaple.com.
- Un mot de passe root est configuré sur le serveur.
Mise en route
Tout d'abord, mettez à jour le système et installez le référentiel EPEL avec la commande suivante :
dnf update
dnf install epel-release
Ensuite, vous devrez installer certains outils et dépendances nécessaires pour créer Odoo sur votre système.
Vous pouvez tous les installer 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 tous les packages installés, vous pouvez passer à l'étape suivante.
Créer un utilisateur Odoo
Ensuite, vous devrez 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 vous avez terminé, vous pouvez passer à l'étape suivante.
Installer et configurer PostgreSQL
Odoo utilise PostgreSQL pour stocker ses données. Vous devrez donc installer PostgreSQL sur votre serveur. Vous pouvez l'installer avec la commande suivante :
dnf install postgresql postgresql-server postgresql-contrib
Une fois installé, initialisez la base de données avec la commande suivante :
/usr/bin/postgresql-setup initdb
Vous devriez obtenir le résultat suivant :
* Initializing database in '/var/lib/pgsql/data' * Initialized, logs are in /var/lib/pgsql/initdb_postgresql.log
Ensuite, démarrez le service PostgreSQL et autorisez-le à démarrer après le redémarrage du système avec la commande suivante :
systemctl start postgresql
systemctl enable postgresql
Vous pouvez maintenant vérifier PostgreSQL à l'aide de la commande suivante :
systemctl status postgresql
Vous devriez voir le résultat suivant :
? 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, vous devrez 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"
Installer Wkhtmltopdf
Ensuite, vous devrez installer l'outil wkhtmltopdf sur votre système afin qu'Odoo puisse imprimer des rapports PDF. Vous pouvez 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é, vous pouvez passer à l'étape suivante.
Installer et configurer Odoo 13
Tout d'abord, passez à l'utilisateur Odoo avec la commande suivante :
su - odoo
Ensuite, téléchargez la dernière version d'Odoo 13 depuis le référentiel 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éez un nouvel environnement virtuel pour l'instance Odoo 13 avec la commande suivante :
cd /opt/odoo
python3 -m venv odoo13-venv
Ensuite, activez l'environnement virtuel avec la commande suivante :
source odoo13-venv/bin/activate
Vous devriez obtenir le résultat suivant :
(odoo13-venv) [[email protected] ~]$
Ensuite, installez tous les modules Python requis pour Odoo 13 avec la commande suivante :
pip3 install -r odoo13/requirements.txt
Une fois tous les modules requis installés, désactivez l'environnement virtuel avec la commande suivante :
deactivate
Enfin, quittez l'utilisateur Odoo avec la commande suivante :
exit
Ensuite, créez 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, changez la propriété des deux répertoires en 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éez un nouveau fichier de configuration pour Odoo 13 en utilisant la commande suivante :
nano /etc/odoo.conf
Ajoutez 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
Enregistrez et fermez le fichier lorsque vous avez terminé.
Créer un fichier de service Systemd pour Odoo 13
Ensuite, vous devrez créer un nouveau fichier d'unité systemd pour Odoo 13 afin de gérer le service Odoo.
Vous pouvez le créer avec la commande suivante :
nano /etc/systemd/system/odoo13.service
Ajoutez 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
Enregistrez et fermez le fichier. Ensuite, rechargez le démon systemd avec la commande suivante :
systemctl daemon-reload
Ensuite, démarrez le service Odoo et activez-le après le redémarrage du système avec la commande suivante :
systemctl start odoo13
systemctl enable odoo13
Vous pouvez également vérifier le statut d'Odoo avec la commande suivante :
systemctl status odoo13
Vous devriez 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. Vous pouvez le vérifier avec la commande suivante :
netstat -plntu | grep 8069
Vous devriez voir le résultat suivant :
tcp 0 0 0.0.0.0:8069 0.0.0.0:* LISTEN 17022/python3
Configurer Nginx en tant que proxy inverse pour Odoo 13
Ensuite, vous devrez installer et configurer le Nginx en tant que proxy inverse pour l'instance Odoo 13.
Tout d'abord, installez le serveur Web Nginx avec la commande suivante :
dnf install nginx
Une fois installé, créez un nouveau fichier de configuration d'hôte virtuel avec la commande suivante :
nano /etc/nginx/conf.d/odoo13.conf
Ajoutez 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; }
Enregistrez et fermez le fichier lorsque vous avez terminé. Ensuite, démarrez le service Nginx et activez-le après le redémarrage du système avec la commande suivante :
systemctl start nginx
systemctl enable nginx
Vous pouvez vérifier l'état du service Nginx à l'aide de la commande suivante :
systemctl status nginx
Vous devriez voir le résultat suivant :
? 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, vous devrez autoriser le service Nginx via le pare-feu à accéder à l'instance Odoo 13 à partir du système distant.
Vous pouvez 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. Vous devrez donc autoriser HTTP via SELinux. Vous pouvez 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.
Ouvrez votre navigateur Web et saisissez l'URL http://example.com . Vous serez redirigé vers la page suivante :
Maintenant, fournissez votre mot de passe principal, le nom de la base de données, l'e-mail, le mot de passe, le pays et cliquez sur Créer base de données bouton. Vous serez redirigé vers la page d'administration d'Odoo 13 :
Conclusion
Dans le tutoriel ci-dessus, vous avez appris comment installer et configurer Odoo 13 sur le serveur CentOS 8. Vous avez également appris à configurer Nginx en tant que proxy inverse pour Odoo 13. Vous pouvez désormais personnaliser votre instance Odoo 13 en fonction des besoins de votre entreprise.