How To Install Odoo 12 on Ubuntu 18.04
Table des matières:
- Avant que tu commences
- Créer un utilisateur Odoo
- Installer et configurer PostgreSQL
- Installer Wkhtmltopdf
- Installer et configurer Odoo
- Créer un fichier d'unité Systemd
- Testez l'installation
- Configurer Nginx comme proxy de terminaison SSL
- Changer l'interface de liaison
- Activer le multi-traitement
- Conclusion
Odoo est le logiciel d'entreprise tout-en-un le plus populaire au monde. Il offre une gamme d'applications commerciales, notamment CRM, site Web, commerce électronique, facturation, comptabilité, fabrication, entrepôt, gestion de projet, inventaire et bien plus encore, le tout parfaitement intégré.
Odoo peut être installé de différentes manières. La façon la plus simple et la plus rapide d'installer Odoo est d'utiliser leurs dépôts officiels APT.
Ce didacticiel couvre les étapes requises pour installer et configurer Odoo 12 pour la production à l'aide de la source Git et de l'environnement virtuel Python sur un système Ubuntu 18.04.
Avant que tu commences
Connectez-vous à votre machine Ubuntu en tant qu'utilisateur sudo et mettez à jour le système vers les derniers packages:
sudo apt update && sudo apt upgrade
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éer un utilisateur Odoo
Créez un nouvel utilisateur système pour Odoo nommé
odoo12
avec le répertoire personnel
/opt/odoo12
à l'aide de la commande suivante:
sudo useradd -m -d /opt/odoo12 -U -r -s /bin/bash odoo12
Vous pouvez utiliser n'importe quel nom pour votre utilisateur Odoo tant que vous créez un utilisateur PostgreSQL avec le même nom.
Installer et configurer PostgreSQL
Installez le package PostgreSQL à partir des référentiels par défaut d'Ubuntu:
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 précédemment créé, dans notre cas, c'est
odoo12
:
sudo su - postgres -c "createuser -s odoo12"
Installer Wkhtmltopdf
Le package
wkhtmltox
fournit un ensemble d'outils de ligne de commande open source qui peuvent rendre le HTML en PDF et divers formats d'image. Pour imprimer des rapports PDF, vous aurez besoin de l'outil
wkhtmltopdf
. La version recommandée pour Odoo est
0.12.1
qui n'est pas disponible dans les dépôts officiels d'Ubuntu 18.04.
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.1.3-1~bionic_amd64.deb
Installer et configurer Odoo
Nous installerons Odoo à partir du référentiel GitHub dans un environnement virtuel Python isolé.
Avant de commencer le processus d'installation, passez à l'utilisateur «odoo12»:
sudo su - odoo12
Commencez par cloner le code source d'Odoo 12 à partir du référentiel GitHub:
git clone https://www.github.com/odoo/odoo --depth 1 --branch 12.0 /opt/odoo12/odoo
Une fois le code source téléchargé, créez un nouvel environnement virtuel Python pour l'installation d'Odoo 12:
cd /opt/odoo12
python3 -m venv odoo-venv
Ensuite, 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 des erreurs de compilation lors de l'installation, assurez-vous d'avoir installé toutes les dépendances requises répertoriées dans la section
Before you begin
.
Désactivez l'environnement à l'aide de la commande suivante:
deactivate
Créez un nouveau répertoire pour les modules complémentaires personnalisés:
mkdir /opt/odoo12/odoo-custom-addons
Revenez à votre utilisateur sudo:
exit
Ensuite, créez un fichier de configuration, en copiant l'exemple de fichier de configuration inclus:
sudo cp /opt/odoo12/odoo/debian/odoo.conf /etc/odoo12.conf
Ouvrez le fichier et modifiez-le comme suit:
sudo nano /etc/odoo12.conf
/etc/odoo12.conf
; This is the password that allows database operations: admin_passwd = my_admin_passwd db_host = False db_port = False db_user = odoo12 db_password = False addons_path = /opt/odoo12/odoo/addons, /opt/odoo12/odoo-custom-addons
N'oubliez pas de changer
my_admin_passwd
en quelque chose de plus sécurisé.
Créer un fichier d'unité Systemd
Pour exécuter Odoo en tant que service, nous devons créer un fichier d'unité de service dans le répertoire
/etc/systemd/system/
.
Ouvrez votre éditeur de texte et collez la configuration suivante:
sudo nano /etc/systemd/system/odoo12.service
/etc/systemd/system/odoo12.service
Description=Odoo12 Requires=postgresql.service After=network.target postgresql.service Type=simple SyslogIdentifier=odoo12 PermissionsStartOnly=true User=odoo12 Group=odoo12 ExecStart=/opt/odoo12/odoo-venv/bin/python3 /opt/odoo12/odoo/odoo-bin -c /etc/odoo12.conf StandardOutput=journal+console WantedBy=multi-user.target
Informez systemd qu'un nouveau fichier d'unité existe et démarrez le service Odoo en exécutant:
sudo systemctl daemon-reload
sudo systemctl start odoo12
Vérifiez l'état du service avec la commande suivante:
sudo systemctl status odoo12
La sortie devrait ressembler à quelque chose comme ci-dessous indiquant que le service Odoo est actif et en cours d'exécution.
* odoo12.service - Odoo12 Loaded: loaded (/etc/systemd/system/odoo12.service; disabled; vendor preset: enabled) Active: active (running) since Tue 2018-10-09 14:15:30 PDT; 3s ago Main PID: 24334 (python3) Tasks: 4 (limit: 2319) CGroup: /system.slice/odoo12.service `-24334 /opt/odoo12/odoo-venv/bin/python3 /opt/odoo12/odoo/odoo-bin -c /etc/odoo12.conf
Activez le démarrage automatique du service Odoo au démarrage:
sudo systemctl enable odoo12
Testez 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:
Configurer Nginx comme proxy de terminaison SSL
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. Dans ce didacticiel, nous utiliserons le certificat
example.com
.Nginx installed.SSL pour votre domaine. Vous pouvez installer un certificat SSL Let's Encrypt gratuit.
Le serveur Web Odoo par défaut sert le trafic via HTTP. Pour rendre notre 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 notre proxy de terminaison (Nginx) gérera et déchiffrera les connexions TLS entrantes (HTTPS) et transmettra les demandes non chiffrées à notre service interne (Odoo) afin que le trafic entre Nginx et Odoo ne soit 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.
Dans cet exemple, nous allons configurer la terminaison SSL, la redirection HTTP vers HTTPS, la redirection WWW vers non WWW, mettre en cache les fichiers statiques et activer la compression GZip.
Ouvrez votre éditeur de texte et créez le fichier suivant:
sudo nano /etc/nginx/sites-enabled/example.com
/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 avec:
sudo systemctl restart nginx
Ensuite, nous devons dire à Odoo que nous utiliserons un proxy. Pour ce faire, ouvrez le fichier de configuration et ajoutez la ligne suivante:
/etc/odoo12.conf
proxy_mode = True
Redémarrez le service Odoo pour que les modifications prennent effet:
sudo systemctl restart odoo12
À ce stade, votre serveur est configuré et vous pouvez accéder à votre instance Odoo sur:
https://example.com
Changer 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. Si vous souhaitez désactiver l'accès direct à votre instance Odoo, vous pouvez soit bloquer le port
8069
pour toutes les interfaces publiques, soit forcer Odoo à écouter uniquement sur l'interface locale.
Dans ce guide, nous allons configurer Odoo pour écouter uniquement sur
127.0.0.1
. Ouvrez la configuration, ajoutez les deux lignes suivantes à la fin du fichier:
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:
Activer le multi-traitement
Par défaut, Odoo fonctionne en mode multithreading. Pour les déploiements en production, il est recommandé de basculer vers le serveur multiprocesseur car il augmente la stabilité et optimise l'utilisation des ressources système. Afin d'activer le multitraitement, nous devons 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, nous utiliserons les formules et hypothèses suivantes:
Calcul du nombre de travailleurs
- nombre maximum théorique de travailleurs = (system_cpus * 2) + 11 travailleurs peuvent servir ~ = 6 utilisateurs simultanés
Calcul de la taille de la mémoire RAM
- Nous considérerons que 20% de toutes les demandes sont des demandes lourdes, tandis que 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 nous avons 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, nous pouvons 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 ci-dessus nous montre que notre installation Odoo aura besoin d'environ 2 Go de RAM.
Pour passer en mode multitraitement, ouvrez le fichier de configuration et ajoutez les lignes suivantes:
/etc/odoo12.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 odoo12
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 un même serveur et 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 12 sur Ubuntu 18.04 dans un environnement virtuel Python utilisant Nginx comme proxy inverse. Vous avez également appris comment activer le multitraitement et optimiser Odoo pour l'environnement de production.
Vous pouvez également consulter notre tutoriel sur la façon de créer des sauvegardes quotidiennes automatiques de vos bases de données Odoo.
ubuntu odoo postgresql python pip nginx proxy sslComment déployer Odoo 11 sur Ubuntu 18.04
Ce guide couvre les étapes nécessaires pour installer et configurer Odoo pour la production en utilisant la source Git et l'environnement virtuel Python sur un système Ubuntu 18.04.
Comment déployer Rocket.chat sur Ubuntu 18.04
Rocket.Chat est une plateforme de communication d'équipe open source, une alternative Slack auto-hébergée. Rocket.Chat est une solution parfaite pour les entreprises et les communautés qui souhaitent héberger leur propre système de chat.
Comment déployer le plus important sur Ubuntu 18.04
Mattermost rassemble toutes vos communications d'équipe en un seul endroit et offre diverses fonctionnalités, notamment le partage de fichiers, la messagerie individuelle et de groupe, les emojis personnalisés, les appels vidéo et plus encore.