Android

Comment installer Odoo 13 sur Ubuntu 18.04

How to Install Odoo 13 on Ubuntu 18.04

How to Install Odoo 13 on Ubuntu 18.04

Table des matières:

Anonim

Odoo est une suite d'applications professionnelles open source populaire. Il offre une gamme d'applications, y compris CRM, commerce électronique, constructeur de sites Web, facturation, comptabilité, fabrication, entrepôt, gestion de projet, inventaire et bien plus encore, le tout parfaitement intégré.

Odoo peut être installé de plusieurs manières en fonction du cas d'utilisation et des technologies disponibles. La façon la plus simple et la plus rapide d'installer Odoo est d'utiliser les dépôts officiels Odoo APT.

L'installation d'Odoo dans un environnement virtuel, ou le déploiement en tant que conteneur Docker, vous permet d'avoir plus de contrôle sur la configuration du système et d'exécuter plusieurs versions d'Odoo sur le même système.

Dans ce guide, nous vous guiderons à travers l'installation et le déploiement d'Odoo 13 dans un environnement virtuel Python sur Ubuntu 18.04. Nous téléchargerons Odoo à partir de leur référentiel Github et utiliserons Nginx comme proxy inverse.

Installation des prérequis

Connectez-vous à votre Ubuntu en tant qu'utilisateur sudo et mettez à jour le cache Apt:

sudo apt update

Installez Git, Pip, Node.js et les outils nécessaires pour créer des dépendances Odoo:

sudo apt install git python3-pip build-essential wget python3-dev python3-venv python3-wheel libxslt-dev libzip-dev libldap2-dev libsasl2-dev python3-setuptools node-less

Création d'un utilisateur système

Créez un utilisateur système qui exécutera Odoo, nommé odoo13 avec le répertoire personnel /opt/odoo13 :

sudo useradd -m -d /opt/odoo13 -U -r -s /bin/bash odoo13

Vous pouvez définir le nom de l'utilisateur comme vous le souhaitez, tant que vous créez un utilisateur PostgreSQL avec le même nom.

Installation et configuration de PostgreSQL

Odoo utilise PostgreSQL comme back-end de base de données. Pour installer PostgreSQL, exécutez la commande suivante:

sudo apt install postgresql

Une fois l'installation terminée, créez un utilisateur PostgreSQL avec le même nom que l'utilisateur système créé précédemment, dans notre cas, c'est odoo13 :

sudo su - postgres -c "createuser -s odoo13"

Installation de Wkhtmltopdf

Le package wkhtmltox fournit un ensemble d'outils de ligne de commande open-source qui peuvent rendre HTML en PDF et en différents formats d'image. Pour pouvoir imprimer des rapports PDF, vous devez installer l'outil wkhtmltopdf . La version recommandée pour Odoo est 0.12.5 , qui n'est pas disponible dans les référentiels Ubuntu 18.04 par défaut.

Téléchargez le package à l'aide de la commande wget suivante:

wget

Une fois le téléchargement terminé, installez le package en tapant:

sudo apt install./wkhtmltox_0.12.5-1.bionic_amd64.deb

Installation et configuration d'Odoo 13

Comme mentionné précédemment, nous installerons Odoo à partir de la source dans un environnement virtuel Python isolé.

Tout d'abord, passez à l'utilisateur «odoo13»:

sudo su - odoo13

Clonez le code source d'Odoo 13 depuis GitHub:

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

Une fois le téléchargement terminé, créez un nouvel environnement virtuel Python pour Odoo:

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

Activez l'environnement avec la commande suivante:

source odoo-venv/bin/activate

Installez tous les modules Python requis avec pip3:

pip3 install wheel pip3 install -r odoo/requirements.txt Si vous rencontrez une erreur de compilation lors de l'installation, assurez-vous que toutes les dépendances requises répertoriées dans la section Installing Prerequisites sont installées.

Une fois cela fait, désactivez l'environnement en tapant:

deactivate

Nous allons créer un nouveau répertoire qui contiendra les modules complémentaires tiers.

mkdir /opt/odoo13/odoo-custom-addons

Plus tard, nous ajouterons ce répertoire au paramètre addons_path . Ce paramètre définit une liste de répertoires dans lesquels Odoo recherche des modules.

Revenez à votre utilisateur sudo:

exit

Créez un fichier de configuration avec le contenu suivant:

sudo nano /etc/odoo13.conf /etc/odoo13.conf

; This is the password that allows database operations: admin_passwd = my_admin_passwd db_host = False db_port = False db_user = odoo13 db_password = False addons_path = /opt/odoo13/odoo/addons, /opt/odoo13/odoo-custom-addons N'oubliez pas de changer my_admin_passwd en quelque chose de plus sécurisé.

Création d'un fichier d'unité Systemd

Ouvrez votre éditeur de texte et créez un fichier d'unité de service appelé odoo13.service avec le contenu suivant:

sudo nano /etc/systemd/system/odoo13.service /etc/systemd/system/odoo13.service

Description=Odoo13 Requires=postgresql.service After=network.target postgresql.service Type=simple SyslogIdentifier=odoo13 PermissionsStartOnly=true User=odoo13 Group=odoo13 ExecStart=/opt/odoo13/odoo-venv/bin/python3 /opt/odoo13/odoo/odoo-bin -c /etc/odoo13.conf StandardOutput=journal+console WantedBy=multi-user.target

Informez systemd qu'un nouveau fichier d'unité existe:

sudo systemctl daemon-reload

Démarrez le service Odoo et activez-le pour démarrer au démarrage en exécutant:

sudo systemctl enable --now odoo13

Vérifiez l'état du service:

sudo systemctl status odoo13

La sortie devrait ressembler à ci-dessous, indiquant que le service Odoo est actif et en cours d'exécution.

● odoo13.service Loaded: loaded (/etc/systemd/system/odoo13.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2019-10-19 20:06:23 UTC; 3s ago Main PID: 1860 (python3) Tasks: 4 (limit: 2362) CGroup: /system.slice/odoo13.service └─1860 /opt/odoo13/odoo-venv/bin/python3 /opt/odoo13/odoo/odoo-bin -c /etc/odoo13.conf

Pour voir les messages enregistrés par le service Odoo, utilisez la commande ci-dessous:

sudo journalctl -u odoo13

Test de l'installation

Ouvrez votre navigateur et tapez: http://:8069 http://:8069

En supposant que l'installation est réussie, un écran similaire au suivant apparaîtra:

Configuration de Nginx comme proxy de terminaison SSL

Le serveur Web Odoo par défaut sert le trafic via HTTP. Pour rendre le déploiement Odoo plus sécurisé, nous allons configurer Nginx comme un proxy de terminaison SSL qui servira le trafic via

Le proxy de terminaison SSL est un serveur proxy qui gère le cryptage / décryptage SSL. Cela signifie que le proxy de terminaison (Nginx) traitera et déchiffrera les connexions TLS entrantes (HTTPS) et transmettra les demandes non chiffrées au service interne (Odoo). Le trafic entre Nginx et Odoo ne sera pas chiffré (HTTP).

L'utilisation d'un proxy inverse vous offre de nombreux avantages tels que l'équilibrage de charge, la terminaison SSL, la mise en cache, la compression, la diffusion de contenu statique, etc.

Assurez-vous d'avoir satisfait aux conditions préalables suivantes avant de continuer avec cette section:

  • Nom de domaine pointant vers l'IP de votre serveur public. Nous utiliserons le certificat example.com .Nginx installed.SSL pour votre domaine. Vous pouvez installer un certificat SSL Let's Encrypt gratuit.

Ouvrez votre éditeur de texte et créez / modifiez le bloc serveur de domaine:

sudo nano /etc/nginx/sites-enabled/example.com

La configuration suivante configure la terminaison SSL, la redirection HTTP vers HTTPS, la redirection WWW vers non WWW, met en cache les fichiers statiques et active la compression GZip.

/etc/nginx/sites-enabled/example.com

# Odoo servers upstream odoo { server 127.0.0.1:8069; } upstream odoochat { server 127.0.0.1:8072; } # HTTP -> HTTPS server { listen 80; server_name www.example.com example.com; include snippets/letsencrypt.conf; return 301 https://example.com$request_uri; } # WWW -> NON WWW server { listen 443 ssl http2; server_name www.example.com; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem; include snippets/ssl.conf; return 301 https://example.com$request_uri; } server { listen 443 ssl http2; server_name example.com; proxy_read_timeout 720s; proxy_connect_timeout 720s; proxy_send_timeout 720s; # Proxy headers 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; # SSL parameters ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem; include snippets/ssl.conf; # log files access_log /var/log/nginx/odoo.access.log; error_log /var/log/nginx/odoo.error.log; # Handle longpoll requests location /longpolling { proxy_pass http://odoochat; } # Handle / requests location / { proxy_redirect off; proxy_pass http://odoo; } # Cache static files location ~* /web/static/ { proxy_cache_valid 200 90m; proxy_buffering on; expires 864000; proxy_pass http://odoo; } # Gzip gzip_types text/css text/less text/plain text/xml application/xml application/json application/javascript; gzip on; } N'oubliez pas de remplacer example.com par votre domaine Odoo et de définir le chemin d'accès correct aux fichiers de certificat SSL. Les extraits de code utilisés dans cette configuration sont créés dans ce guide.

Une fois que vous avez terminé, redémarrez le service Nginx:

sudo systemctl restart nginx

Ensuite, nous devons dire à Odoo d'utiliser le proxy. Pour ce faire, ouvrez le fichier de configuration et ajoutez la ligne suivante:

/etc/odoo13.conf

proxy_mode = True

Redémarrez le service Odoo pour que les modifications prennent effet:

sudo systemctl restart odoo13

À ce stade, le proxy inverse est configuré et vous pouvez accéder à votre instance Odoo à l' https://example.com : https://example.com

Modification de l'interface de liaison

Cette étape est facultative, mais c'est une bonne pratique de sécurité.

Par défaut, le serveur Odoo écoute le port 8069 sur toutes les interfaces. Pour désactiver l'accès direct à l'instance Odoo, vous pouvez soit bloquer le port 8069 pour toutes les interfaces publiques, soit forcer Odoo à écouter uniquement sur l'interface locale.

Nous allons configurer Odoo pour écouter uniquement sur 127.0.0.1 . Ouvrez la configuration, ajoutez les deux lignes suivantes à la fin du fichier:

/etc/odoo13.conf

xmlrpc_interface = 127.0.0.1 netrpc_interface = 127.0.0.1

Enregistrez le fichier de configuration et redémarrez le serveur Odoo pour que les modifications prennent effet:

sudo systemctl restart odoo13

Activation du multitraitement

Par défaut, Odoo fonctionne en mode multithreading. Pour les déploiements en production, il est recommandé de passer au serveur multitraitement car il augmente la stabilité et optimise l'utilisation des ressources système.

Pour activer le multitraitement, vous devez modifier la configuration Odoo et définir un nombre non nul de processus de travail. Le nombre de travailleurs est calculé en fonction du nombre de cœurs de processeur dans le système et de la mémoire RAM disponible.

Selon la documentation officielle d'Odoo pour calculer le nombre de travailleurs et la taille de mémoire RAM requise, vous pouvez utiliser les formules et hypothèses suivantes:

Calcul du nombre de travailleurs

  • Nombre maximal théorique de travailleurs = (system_cpus * 2) + 11 travailleurs peuvent servir ~ = 6 utilisateurs simultanés Les travailleurs de Cron ont également besoin d'un processeur

Calcul de la taille de la mémoire RAM

  • Nous considérerons que 20% de toutes les demandes sont des demandes lourdes et 80% sont plus légères. Les demandes lourdes utilisent environ 1 Go de RAM tandis que les plus légères utilisent environ 150 Mo de RAM RAM requise = number_of_workers * ((light_worker_ratio * light_worker_ram_estimation) + (heavy_worker_ratio * heavy_worker_ram_estimation))

grep -c ^processor /proc/cpuinfo

Disons que vous avez un système avec 4 cœurs de processeur, 8 Go de mémoire RAM et 30 utilisateurs Odoo simultanés.

  • 30 users / 6 = **5** (5 est le nombre théorique de travailleurs nécessaires) (4 * 2) + 1 = **9** (9 est le nombre maximum théorique de travailleurs)

Sur la base du calcul ci-dessus, vous pouvez utiliser 5 travailleurs + 1 travailleur pour le travailleur cron qui est un total de 6 travailleurs.

Calculez la consommation de mémoire RAM en fonction du nombre de travailleurs:

  • RAM = 6 * ((0.8*150) + (0.2*1024)) ~= 2 GB of RAM

Le calcul montre que l'installation d'Odoo aura besoin d'environ 2 Go de RAM.

Pour passer en mode multitraitement, ouvrez le fichier de configuration et ajoutez les valeurs calculées:

/etc/odoo13.conf

limit_memory_hard = 2684354560 limit_memory_soft = 2147483648 limit_request = 8192 limit_time_cpu = 600 limit_time_real = 1200 max_cron_threads = 1 workers = 5

Redémarrez le service Odoo pour que les modifications prennent effet:

sudo systemctl restart odoo13

Le reste des ressources système sera utilisé par d'autres services qui s'exécutent sur ce système. Dans ce guide, nous avons installé Odoo avec PostgreSQL et Nginx sur le même serveur. Selon votre configuration, vous pouvez également avoir d'autres services en cours d'exécution sur votre serveur.

Conclusion

Ce tutoriel vous a guidé à travers l'installation d'Odoo 13 sur Ubuntu 18.04 dans un environnement virtuel Python utilisant Nginx comme proxy inverse. Nous vous avons également montré comment activer le multitraitement et optimiser Odoo pour un environnement de production.

Vous pouvez également consulter notre tutoriel sur la façon de créer des sauvegardes quotidiennes automatiques des bases de données Odoo.

ubuntu odoo postgresql python pip nginx proxy ssl