Comment installer Odoo 14 sur Ubuntu 20.04

Odoo est une suite d’applications commerciales open source. Il comprend le CRM, le commerce électronique, l’inventaire, le point de vente, la gestion de projet, etc. Ces applications sont entièrement intégrées et accessibles via une interface Web commune. Avec Odoo, vous pouvez intégrer vos applications et faciliter la vie des entreprises.

Il existe deux éditions d’Oddo – la version Communauté et Entreprise. L’édition communautaire est gratuite pour tous.

Odoo a peu d’options d’installation telles que depuis le référentiel APT, en utilisant docker ou en s’installant dans un environnement virtuel.

Dans ce tutoriel, nous expliquons comment installer Odoo 14 CE au Ubuntu 20.04 dans un environnement virtuel Python. Hébergé Odoo sur Nginx en tant que proxy de terminaison SSL avec certificat Let’s Encrypt.

Conditions préalables

  1. Une instance Ubuntu 20.04 avec au moins 2 Go de RAM
  2. Pour la gestion de la base de données, Odoo nécessite PostgreSQL
  3. Un utilisateur non root avec sudo privilège

Étape 1. Installation des dépendances

Tout d’abord, mettez à jour votre système.

sudo apt update
sudo apt upgrade

La commande suivante installera toutes les dépendances d’Odoo.

sudo apt install git python3-pip build-essential wget python3-dev python3-venv python3-wheel libfreetype6-dev libxml2-dev libzip-dev libldap2-dev libsasl2-dev python3-setuptools node-less libjpeg-dev zlib1g-dev libpq-dev libxslt1-dev libldap2-dev libtiff5-dev libjpeg8-dev libopenjp2-7-dev liblcms2-dev libwebp-dev libharfbuzz-dev libfribidi-dev libxcb1-dev

Étape 2. Création d’un utilisateur système

Pour exécuter Odoo, nous devrons créer un nouveau système utilisateur et groupe avec un répertoire personnel sous le chemin /opt/odoo14 qui devra pouvoir exécuter un service Odoo.

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

Étape 3. Installer et configurer PostgreSQL

Tout d’abord, installez PostgreSQL en utilisant apt.

sudo apt install postgresql

Une fois l’installation de PostgreSQL terminée, nous devrons créer un utilisateur PostgreSQL. Gardez à l’esprit que nous allons utiliser le même nom que celui utilisé précédemment pour créer un utilisateur système. C’est bizarre14.

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

Étape 4. Installation de wkhtmltopdf

wkhtmlverspdf – est un outil de ligne de commande open source qui prend en charge le rendu de pages HTML au format PDF et autres formats similaires.

Pour pouvoir imprimer des formats PDF et des rapports dans Odoo, vous devrez installer le package wkhtmltopdf.

Tout d’abord, téléchargez le package à l’aide de la commande wget.

sudo wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox_0.12.6-1.bionic_amd64.deb

Une fois le téléchargement terminé, installez wkhtmltopdf à l’aide de la commande apt :

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

Étape 5. Installer et configurer Odoo 14

Comme nous l’avons mentionné dans l’introduction, nous installerons Odoo à partir de la source en tant qu’environnement virtuel Python isolé.

Tout d’abord, changez un utilisateur en odoo14 avec la commande suivante.

sudo su - odoo14

À cloner l’Odoo 14 code source officiel de GitHub, taper:

git clone https://www.github.com/odoo/odoo --depth 1 --branch 14.0 /opt/odoo14/odoo

Puis changez de répertoire en /opt/odoo14

cd /opt/odoo14

À partir de là, créez un nouvel environnement virtuel Python pour Odoo avec la commande suivante.

python3 -m venv odoo-venv

Et Activer l’environnement virtuel.

source odoo-venv/bin/activate

Après avoir activé l’environnement virtuel, installez tous les modules Python requis avec pip3.

(odoo-venv) $ pip3 install wheel

Et installer

(odoo-venv) $ pip3 install -r odoo/requirements.txt

Cela peut prendre un certain temps, lorsque c’est fait, désactivez l’environnement avec la commande suivante.

(odoo-venv) $ deactivate

Créez un nouveau répertoire dans le chemin /opt/odoo14, qui contiendra les addons tiers que nous allons inclure dans la configuration.

mkdir /opt/odoo14/odoo-custom-addons

Nous allons ajouter ce répertoire au paramètre addons_path. Ce paramètre définira une liste de répertoires dans lesquels Odoo recherchera des modules.

Ensuite, quittez l’utilisateur odoo et revenez à votre sudo utilisateur.

exit

Créez un fichier de configuration :

sudo nano /etc/odoo14.conf

Et passez le contenu suivant dans le fichier :

[options]
; This is the password that allows database operations:
admin_passwd = put_your_secure_password
db_host = False
db_port = False
db_user = odoo14
db_password = False
addons_path = /opt/odoo14/odoo/addons,/opt/odoo14/odoo-custom-addons

Étape 6. Créez un fichier d’unité Systemd

Créer un fichier d’unité de service appelé odoo14.service dans le répertoire /etc/systemd/system/.

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

Et passé la configuration suivante :

[Unit]
Description=Odoo14
Requires=postgresql.service
After=network.target postgresql.service

[Service]
Type=simple
SyslogIdentifier=odoo14
PermissionsStartOnly=true
User=odoo14
Group=odoo14

ExecStart=/opt/odoo14/odoo-venv/bin/python3 /opt/odoo14/odoo/odoo-bin -c /etc/odoo14.conf
StandardOutput=journal+console

[Install]
WantedBy=multi-user.target

Dites à systemd qu’un nouveau fichier d’unité a été créé.

sudo systemctl daemon-reload

Et démarrez le service Odoo et activez-le au démarrage avec la commande suivante :

sudo systemctl enable --now odoo14

Sortir:

Created symlink /etc/systemd/system/multi-user.target.wants/odoo14.service → /etc/systemd/system/odoo14.service.

Vérifiez l’état du service :

sudo systemctl status odoo14

La sortie indiquant que le service Odoo est opérationnel :

● odoo14.service - Odoo14
Loaded: loaded (/etc/systemd/system/odoo14.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2021-07-22 00:42:45 UTC; 48s ago
Main PID: 149632 (python3)
Tasks: 4 (limit: 1073)
Memory: 63.7M
CGroup: /system.slice/odoo14.service
└─149632 /opt/odoo14/odoo-venv/bin/python3 /opt/odoo14/odoo/odoo-bin -c /etc/odoo14.conf


Jul 22 00:42:45 li1129-224 systemd[1]: Started Odoo14.
Jul 22 00:42:45 li1129-224 odoo14[149632]: 2021-07-22 00:42:45,927 149632 INFO ? odoo: Odoo version 14.0
Jul 22 00:42:45 li1129-224 odoo14[149632]: 2021-07-22 00:42:45,932 149632 INFO ? odoo: Using configuration file at /etc/odoo14.conf
Jul 22 00:42:45 li1129-224 odoo14[149632]: 2021-07-22 00:42:45,932 149632 INFO ? odoo: addons paths: ['/opt/odoo14/odoo/odoo/addons', '/opt/odoo14/.local/share/Odoo/addons/14.0', '/opt/odoo14/odoo/addons', '/opt/odoo14/odoo-custom-addons>
Jul 22 00:42:45 li1129-224 odoo14[149632]: 2021-07-22 00:42:45,932 149632 INFO ? odoo: database: odoo14@default:default
Jul 22 00:42:46 li1129-224 odoo14[149632]: 2021-07-22 00:42:46,525 149632 INFO ? odoo.service.server: HTTP service (werkzeug) running on linoxide:8069

Pour voir les messages qui ont été enregistrés par le service Odoo, exécutez :

sudo journalctl -u odoo14

Sortir:

-- Logs begin at Tue 2021-07-13 12:50:08 UTC, end at Thu 2021-07-22 00:45:23 UTC. --
Jul 22 00:42:45 li1129-224 systemd[1]: Started Odoo14.
Jul 22 00:42:45 li1129-224 odoo14[149632]: 2021-07-22 00:42:45,927 149632 INFO ? odoo: Odoo>
Jul 22 00:42:45 li1129-224 odoo14[149632]: 2021-07-22 00:42:45,932 149632 INFO ? odoo: Usin>
Jul 22 00:42:45 li1129-224 odoo14[149632]: 2021-07-22 00:42:45,932 149632 INFO ? odoo: addo>
Jul 22 00:42:45 li1129-224 odoo14[149632]: 2021-07-22 00:42:45,932 149632 INFO ? odoo: data>
Jul 22 00:42:46 li1129-224 odoo14[149632]: 2021-07-22 00:42:46,210 149632 INFO ? odoo.addon>
Jul 22 00:42:46 li1129-224 odoo14[149632]: 2021-07-22 00:42:46,525 149632 INFO ? odoo.servi>

Ouvrez votre navigateur et tapez : https://<your_domain_or_IP_address>:8069

Connexion Odoo14

Mettre Mot de passe maître que vous avez précédemment défini dans le chemin de configuration /etc/odoo14.conf, et entrez d’autres informations d’identification pour créer une base de données.

Tableau de bord Odoo14

Une fois la base de données créée avec succès, elle sera redirigée vers le tableau de bord Odoo14.

Étape 7. Configuration de Nginx en tant que proxy de terminaison SSL (facultatif)

Si vous souhaitez rendre Odoo plus sécurisé pour votre environnement, nous pouvons définir Nginx en tant que proxy de terminaison SSL qui servira le trafic via HTTPS, au lieu du trafic Web Odoo par défaut via HTTP.

SSL Termination Proxy présente un serveur proxy qui gérera le cryptage SSL. Dans notre cas, le proxy de terminaison est Nginx, il traitera et déchiffrera les connexions TLS entrantes (HTTPS) et transmettra la demande non chiffrée au service Odoo.

Conditions préalables

  1. Nom de domaine qui pointe vers votre IP de serveur public
    Pour cet article, nous utiliserons example.conf
  2. Nginx installé
  3. Certificat SSL Let’s Encypt

Assurez-vous de vérifier que Let’s Encrypt ou un autre certificat SSL est correctement configuré.

À installer le SSL Let’s Encrypt certificat, nous devons d’abord installer certbot :

# apt install certbot
# apt install python3-certbot-nginx

Ensuite, exécutez la commande suivante avec examplenom de domaine .com et remplissez les informations requises :

# certbot --nginx -d example.com -d www.example.com

Sortir:

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator nginx, Installer nginx
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel):

1. Créer ou modifier le bloc de serveur de domaine

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

Et passé la configuration suivante :

# 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;
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;

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;

# 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 https://odoochat;
}

# Handle / requests
location / {
proxy_redirect off;
proxy_pass https://odoo;
}

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

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

REMARQUE : n’oubliez pas de remplacer example.com avec votre domaine Odoo et définissez le chemin correct vers les fichiers de certificat SSL.

2. Redémarrer le service Nginx

sudo systemctl restart nginx

Après avoir redémarré le service Nginx, nous devrons dire à Odoo d’utiliser ce proxy configuré.

3. Ouvrez le fichier de configuration.

sudo nano /etc/odoo14.conf

4. Et ajoutez la ligne suivante.

proxy_mode = True

5. Enfin, redémarrez le service Odoo.

sudo systemctl restart odoo14

Si vous avez suivi toutes les étapes, vous pourrez accéder à votre instance Web Odoo à l’adresse https://example.avec

Conclusion

Dans ce tutoriel, nous avons appris comment installer et configurer Odoo 14 sur Ubuntu 20.04. Vous pouvez commencer à découvrir à quel point l’ERP open source Odoo est puissant, vous pouvez également essayer d’étudier un ADempiere, une autre solution ERP open source similaire à Odoo.