GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment installer le logiciel Odoo 14 ERP sur Ubuntu 20.04

Odoo (anciennement connu sous le nom d'OpenERP) est une suite auto-hébergée de plus de 10 000 applications open source adaptées à une variété de besoins commerciaux, notamment le CRM, le commerce électronique, la comptabilité, l'inventaire, la gestion de projet et le point de vente. Ces applications sont entièrement intégrées et accessibles via une interface Web commune.

Dans ce tutoriel, nous allons apprendre à installer Odoo 14 Stack sur un serveur basé sur Ubuntu 20.04.

Prérequis

  1. Un serveur basé sur Ubuntu 20.04 avec un minimum de 2 Go de RAM pour héberger Odoo Stack.

  2. Un deuxième serveur basé sur Ubuntu 20.04 avec un minimum de 2 Go de RAM pour héberger la base de données PostgreSQL. Vous pouvez cependant installer la base de données sur le même serveur qu'Odoo mais pour les environnements de production, il est fortement recommandé de l'installer sur un serveur séparé. Vous pouvez également choisir l'une des options de base de données gérée disponibles auprès de n'importe quel fournisseur de votre choix.

  3. La RAM requise dépendra du nombre d'utilisateurs simultanés qui utiliseront la pile. Un guide détaillé sur la façon de calculer la configuration système requise peut être trouvé dans la documentation d'Odoo.

  4. Maintenez vos systèmes à jour.

    $ sudo apt update
    $ sudo apt upgrade
    
  5. Un utilisateur non root avec des privilèges sudo sur les deux serveurs.

Configurer les règles du pare-feu

Pour les besoins de ce tutoriel, nous supposerons que vous avez ufw pare-feu installé sur les deux serveurs.

Sur le serveur Odoo, nous aurons besoin que les ports 22, 80, 443, 6010, 5432 et 8069 soient ouverts. 22 est utilisé pour SSH, 80 est pour HTTP, 443 est pour HTTPS, 6010 est utilisé pour la communication Odoo, 5432 est utilisé par PostgreSQL et 8069 est utilisé par l'application serveur Odoo.

Exécutez les commandes suivantes pour ouvrir les ports requis sur le serveur Odoo.

$ sudo ufw allow "OpenSSH"
$ sudo ufw allow 80,443,6010,5432,8069,8072/tcp
$ sudo ufw allow 80/tcp
$ sudo ufw allow 443/tcp
$ sudo ufw allow 6010/tcp
$ sudo ufw allow 5432/tcp
$ sudo ufw allow 8069/tcp
$ sudo ufw allow 8072/tcp

Sur le serveur PostgreSQL, nous devons ouvrir les ports 22, 6010 et 5432. Ouvrez-les à l'aide des commandes dont nous venons de parler.

Attribuer des noms d'hôte

Vous pouvez soit utiliser les adresses IP des serveurs, soit utiliser leurs noms de domaine complets (FQDN), s'ils sont disponibles. Pour notre tutoriel, nous utiliserons des FQDN et pour cela, nous devons définir des noms d'hôte sur les deux serveurs.

Sur le serveur Odoo, ouvrez le /etc/hosts fichier.

$ sudo nano /etc/hosts

Assurez-vous qu'il ressemble à ce qui suit.

127.0.0.1 	localhost
127.0.0.1	odoo.yourdomain.com		odoo
10.1.1.10	postgresql.yourdomain.com	postgresql

Sur le serveur PostgreSQL, ouvrez le fichier et assurez-vous qu'il ressemble à ce qui suit.

127.0.0.1 	localhost
127.0.0.1	postgresql.yourdomain.com	postgresql
10.1.2.10	odoo.yourdomain.com		odoo

Appuyez sur Ctrl + X pour fermer l'éditeur et appuyez sur Y lorsque vous êtes invité à enregistrer le fichier.

Installer et configurer PostgreSQL

Ubuntu 20.04 est livré avec PostgreSQL 12 par défaut et nous allons l'installer. Exécutez la commande suivante sur le serveur PostgreSQL.

$ sudo apt install postgresql-12 postgresql-server-dev-12

Ensuite, nous devons créer un utilisateur de base de données odoo.

$ sudo -u postgres createuser odoo -U postgres -dP

L'option -u exécute la commande en tant que postgres utilisateur.

L'option -U indiquez le nom d'utilisateur sous lequel se connecter.

L'option -d accorde à l'utilisateur l'autorisation de créer des bases de données.

L'option -p demande le mot de passe du nouvel utilisateur.

Configurer l'authentification basée sur l'hôte

Nous devons autoriser le service PostgreSQL à pouvoir se connecter au serveur Odoo.

Tout d'abord, arrêtez le service PostgreSQL.

$ sudo systemctl stop postgresql

Ouvrez le fichier /etc/postgresql/12/main/pg_hba.conf pour l'édition.

$ sudo nano /etc/postgresql/12/main/pg_hba.conf

Collez la ligne suivante à la fin.

host		all		odoo		odoo.yourdomain.com		md5

Cette ligne accorde la permission à odoo utilisateur pour se connecter à toutes les bases de données de ce serveur. Vous pouvez également spécifier le nom des bases de données au lieu d'utiliser all mot-clé.

Appuyez sur Ctrl + X pour fermer l'éditeur et appuyez sur Y lorsque vous êtes invité à enregistrer le fichier.

Configurer l'adresse d'écoute PostgreSQL

Ensuite, nous devons autoriser le serveur de base de données à écouter les connexions distantes. Ouvrez le fichier /etc/postgresql/12/main/postgresql.conf pour l'édition.

$ sudo nano /etc/postgresql/12/main/postgresql.conf

Changez la ligne listen_addresses de

#listen_addresses = 'localhost' # what IP address(es) to listen on;

à.

#From CONNECTIONS AND AUTHENTICATION Section
listen_addresses = '*'

Le * signifie qu'il écoutera toutes les adresses IP. Vous pouvez le remplacer par l'adresse IP de votre instance odoo.

Appuyez sur Ctrl + X pour fermer l'éditeur et appuyez sur Y lorsque vous êtes invité à enregistrer le fichier.

Activer et démarrer le service PostgreSQL

Puisque notre configuration est terminée, il est temps de démarrer et d'activer le service PostgreSQL.

$ sudo systemctl start postgresql && sudo systemctl enable postgresql

Installer Odoo

Installer les dépendances et préparer l'installation

Créez un nouvel utilisateur système pour gérer les processus Odoo sur le serveur Odoo.

$ sudo adduser --system --home=/opt/odoo --group odoo

Nous devons installer certaines dépendances système, mais nous devons d'abord activer les référentiels source. Pour ce faire, sauvegardez la liste des sources d'origine, puis activez tous les référentiels sources et mettez à jour la liste des référentiels.

$ sudo cp /etc/apt/sources.list /etc/apt/sources.list~
$ sudo sed -Ei 's/^# deb-src /deb-src /' /etc/apt/sources.list
$ sudo apt update

Installez les dépendances système requises pour la configuration d'Odoo 14.

 $ sudo apt install python3-pip python3-suds python3-all-dev python3-venv python3-dev python3-setuptools python3-tk libxml2-dev libxslt1-dev libevent-dev libsasl2-dev libldap2-dev pkg-config libtiff5-dev libjpeg8-dev libjpeg-dev zlib1g-dev libfreetype6-dev liblcms2-dev liblcms2-utils libwebp-dev tcl8.6-dev tk8.6-dev libyaml-dev fontconfig xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils libpq-dev
$ sudo apt build-dep lxml

Installez Nodejs.

$ sudo curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
$ sudo apt install nodejs

Installez le package Less CSS à l'aide de Node.

$ sudo npm install -g less less-plugin-clean-css

Télécharger wkhtmltopdf paquet de la version 0.12.6.

$ cd /tmp
$ wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox_0.12.6-1.focal_amd64.deb

Installez le paquet.

$ sudo dpkg -i wkhtmltox_0.12.6-1.focal_amd64.deb

Pour s'assurer que wkhtmltopdf fonctionne correctement, copiez les binaires dans /usr/bin et donnez-leur les autorisations appropriées.

$ sudo cp /usr/local/bin/wkhtmlto* /usr/bin/
$ sudo chmod a+x /usr/bin/wk*
$ cd ~

Télécharger des fichiers Odoo

Clonez le dépôt Github d'Odoo sur votre système.

$ sudo git clone https://github.com/odoo/odoo.git --depth 1 --branch 14.0 --single-branch /opt/odoo

Pour notre propos, nous copions Odoo dans le /opt/odoo répertoire à partir duquel il sera installé.

Configurer l'environnement Virtualenv Python

Cette étape est facultative mais recommandée car un environnement python virtuel pour Odoo aidera à éviter les conflits avec les modules Python du système d'exploitation, en particulier lors des mises à niveau du système d'exploitation.

Pour cela, nous utiliserons virtualenv .

  1. Créer un nouveau virtualenv environnement pour Odoo.

    $ python3 -m venv /home/<username>/odoo-env
    
  2. Activez l'environnement virtuel. Nous créons un environnement sous le répertoire personnel de l'utilisateur système. Vous êtes libre de choisir l'emplacement que vous aimez.

    $ source /home/<username>/odoo-env/bin/activate
    
  3. Mettez à jour le PIP au cas où.

    (odoo-env) $ pip3 install --upgrade pip
    
  4. Installez la roue de Python dans l'environnement virtuel.

    $ pip3 install wheel
    

Installer les dépendances Python

Installez les dépendances Python requises par Odoo 14.

$ pip3 install -r /opt/odoo/doc/requirements.txt
$ pip3 install -r /opt/odoo/requirements.txt

La configuration requise prendra un certain temps à installer, alors soyez patient.

Vérifiez si les exigences sont correctement installées en consultant la liste des modules Python installés.

$ pip3 list
Package                       Version
----------------------------- ---------
alabaster                     0.7.12
appdirs                       1.4.4
attrs                         20.3.0
Babel                         2.6.0
beautifulsoup4                4.9.3
cached-property               1.5.2
certifi                       2020.12.5
chardet                       3.0.4
decorator                     4.3.0
defusedxml                    0.7.1
docutils                      0.14
ebaysdk                       2.1.5
feedparser                    5.2.1
freezegun                     0.3.15
gevent                        20.9.0
greenlet                      0.4.17
html2text                     2018.1.9
idna                          2.6
imagesize                     1.2.0
isodate                       0.6.0
Jinja2                        2.11.2
libsass                       0.17.0
lxml                          4.6.1
Mako                          1.0.7
MarkupSafe                    1.1.0
num2words                     0.5.6
ofxparse                      0.19
packaging                     20.9
passlib                       1.7.1
Pillow                        8.0.1
pip                           21.0.1
pkg-resources                 0.0.0
polib                         1.1.0
psutil                        5.6.6
psycopg2                      2.8.5
pyasn1                        0.4.8
pyasn1-modules                0.2.8
pydot                         1.4.1
Pygments                      2.8.1
pyparsing                     2.4.7
PyPDF2                        1.26.0
pyserial                      3.4
python-dateutil               2.7.3
python-ldap                   3.1.0
python-stdnum                 1.8
pytz                          2019.1
pyusb                         1.0.2
qrcode                        6.1
reportlab                     3.5.55
requests                      2.21.0
requests-toolbelt             0.9.1
setuptools                    44.0.0
six                           1.15.0
snowballstemmer               2.1.0
soupsieve                     2.2
Sphinx                        3.5.2
sphinx-patchqueue             1.0.4
sphinxcontrib-applehelp       1.0.2
sphinxcontrib-devhelp         1.0.2
sphinxcontrib-htmlhelp        1.0.3
sphinxcontrib-jsmath          1.0.1
sphinxcontrib-qthelp          1.0.3
sphinxcontrib-serializinghtml 1.1.4
unidiff                       0.6.0
urllib3                       1.24.3
vobject                       0.9.6.1
Werkzeug                      0.16.1
wheel                         0.36.2
xlrd                          1.2.0
XlsxWriter                    1.1.2
xlwt                          1.3.0
zeep                          3.2.0
zope.event                    4.5.0
zope.interface                5.2.0

Quittez l'environnement virtuel Python.

$ deactivate

Configurer Odoo

Copiez le fichier de configuration Odoo par défaut pour en créer un nouveau.

$ sudo cp /opt/odoo/debian/odoo.conf /etc/odoo-server.conf

Ouvrez le fichier pour le modifier.

$ sudo nano /etc/odoo-server.conf

Modifiez le fichier pour qu'il ressemble à ce qui suit.

[options]
; This is the password that allows database operations:
admin_passwd = admin
db_host = postgresql.yourdomain.com
db_port = False
db_user = odoo
db_password = odoo_password
addons_path = /opt/odoo/addons
xmlrpc_port = 8069

Appuyez sur Ctrl + X pour fermer l'éditeur et appuyez sur Y lorsque vous êtes invité à enregistrer le fichier.

L'option admin_passwd est le mot de passe qui permet les opérations administratives dans l'interface graphique d'Odoo. Assurez-vous de choisir un mot de passe sécurisé.

L'option db_host est le FQDN ou l'adresse IP du serveur PostgreSQL.

L'option db_port est défini sur false puisque le port PostgreSQL 5432 par défaut est utilisé. Si vous souhaitez utiliser un port différent, vous devrez mettre à jour cette valeur.

L'option db_user est le nom de l'utilisateur PostgreSQL.

L'option db_password est le mot de passe utilisateur "odoo" de PostgreSQL que nous avons créé précédemment sur le serveur PostgreSQL.

L'option addons_path est le chemin Addons par défaut. Vous pouvez également ajouter un chemin personnalisé pour les addons en les séparant par des virgules.

L'option xmlrpc_port est le port sur lequel Odoo écoute.

Créer un service Odoo

Pour nous assurer qu'Odoo continue de fonctionner même après un redémarrage du système, nous devons créer un service pour celui-ci.

Créez un fichier /lib/systemd/system/odoo-server.service et ouvrez-le pour le modifier.

$ sudo nano /lib/systemd/system/odoo-server.service

Collez-y le code suivant.

[Unit]
Description=Odoo Open Source ERP and CRM

[Service]
Type=simple
PermissionsStartOnly=true
SyslogIdentifier=odoo-server
User=odoo
Group=odoo
ExecStart=/home/<username>/odoo-env/bin/python3 /opt/odoo/odoo-bin --config=/etc/odoo-server.conf --addons-path=/opt/odoo/addons/
WorkingDirectory=/opt/odoo/
StandardOutput=journal+console

[Install]
WantedBy=multi-user.target

Remplacez /home/<username> avec l'emplacement que vous avez choisi pour installer Python Virtual Environment.

Appuyez sur Ctrl + X pour fermer l'éditeur et appuyez sur Y lorsque vous êtes invité à enregistrer le fichier.

Définir les autorisations de fichier

Définir les autorisations sur odoo-server.service fichier afin que seul l'utilisateur Odoo puisse le lire ou l'exécuter.

$ sudo chmod 755 /lib/systemd/system/odoo-server.service
$ sudo chown odoo: /lib/systemd/system/odoo-server.service

Définissez la propriété sur l'environnement Python et le répertoire d'installation d'Odoo.

$ sudo chown -R odoo: /opt/odoo/
$ sudo chown -R odoo: /home/<username>/odoo-env

Restreindre le fichier de configuration Odoo.

$ sudo chown odoo: /etc/odoo-server.conf
$ sudo chmod 640 /etc/odoo-server.conf

Démarrer le serveur Odoo

Démarrez et activez le serveur Odoo.

$ sudo systemctl start odoo-server
$ sudo systemctl enable odoo-server

Vérifiez l'état du serveur.

$ sudo systemctl status odoo-server

Dans votre navigateur, ouvrez l'URL http://<yourIPaddress>:8069 ou http://odoo.yourdomain.com:8069 . Si tout fonctionne correctement, vous devriez voir l'écran de création de la base de données d'Odoo.

Remplissez tous les champs. Vérifiez les Demo Data pour remplir la base de données avec des exemples de données, puis cliquez sur Créer une base de données bouton.

Ensuite, vous verrez une liste d'applications que vous pouvez choisir et sélectionner.

La première fois que vous créez une base de données, la page des modules complémentaires prendra du temps à se charger, n'actualisez donc pas la page.

Installer et configurer Nginx

Jusqu'à présent, nous utilisions le serveur d'Odoo pour exécuter la pile. Mais idéalement, il vaut mieux l'exécuter sur Nginx en utilisant un proxy car cela nous permettra d'installer SSL dessus.

Installez Nginx.

$ sudo apt install nginx

Pour l'exécuter via Nginx, nous devons exécuter Odoo sur localhost. Pour changer cela, arrêtez le service Odoo.

$ sudo systemctl stop odoo-server

Ouvrez le fichier de configuration du serveur Odoo.

$ sudo nano /etc/odoo-server.conf

Ajoutez-y les lignes suivantes.

xmlrpc_interface = 127.0.0.1
proxy_mode = True

Créez un fichier de configuration Nginx pour Odoo.

$ sudo nano /etc/nginx/sites-available/odoo.conf

Collez le code ci-dessous.

#odoo server
upstream odoo {
 server 127.0.0.1:8069;
}
upstream odoochat {
 server 127.0.0.1:8072;
}

# http -> https
server {
   listen 80;
   server_name odoo.yourdomain.com;
   rewrite ^(.*) https://$host$1 permanent;
}

server {
 listen 443 ssl http2;
 server_name odoo.yourdomain.com;
 proxy_read_timeout 720s;
 proxy_connect_timeout 720s;
 proxy_send_timeout 720s;

 # Add Headers for odoo proxy mode
 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/odoo.yourdomain.com/fullchain.pem;
 ssl_certificate_key /etc/letsencrypt/live/odoo.yourdomain.com/privkey.pem;
 ssl_session_timeout 1d;
 ssl_session_cache shared:MozSSL:10m;  # about 40000 sessions
 ssl_session_tickets off;
 ssl_protocols TLSv1.2 TLSv1.3;
 ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
 ssl_prefer_server_ciphers off;
 ssl_dhparam /etc/ssl/certs/dhparam.pem;

 # log
 access_log /var/log/nginx/odoo.access.log;
 error_log /var/log/nginx/odoo.error.log;

 # Redirect longpoll requests to odoo longpolling port
 location /longpolling {
 proxy_pass http://odoochat;
 }

 # Redirect requests to odoo backend server
 location / {
   proxy_redirect off;
   proxy_pass http://odoo;
 }

 # common gzip
 gzip_types text/css text/scss text/plain text/xml application/xml application/json application/javascript;
 gzip on;
}

Appuyez sur Ctrl + X pour fermer l'éditeur et appuyez sur Y lorsque vous êtes invité à enregistrer le fichier.

Activez ce fichier de configuration en le liant au sites-enabled répertoire.

$ sudo ln -s /etc/nginx/sites-available/odoo.conf /etc/nginx/sites-enabled/

Testez la configuration Nginx.

$ sudo nginx -t

Installer SSL

Nous allons installer SSL en utilisant le service Let's Encrypt.

Pour cela, installez Certbot.

$ sudo apt install certbot

Arrêtez Nginx car cela interférera avec le processus Certbot.

$ sudo systemctl stop nginx

Générez le certificat. Nous devons également créer un certificat DHCParams.

$ sudo certbot certonly --standalone -d odoo.yourdomain.com --preferred-challenges http --agree-tos -n -m [email protected] --keep-until-expiring 
$ sudo systemctl start nginx
$ sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048

Nous devons également configurer une tâche cron pour renouveler automatiquement le SSL. Pour ouvrir l'éditeur crontab, exécutez la commande suivante.

$ sudo crontab -e

Collez la ligne suivante en bas.

25 2 * * * /usr/bin/certbot renew --quiet --pre-hook “systemctl stop nginx” --post-hook “systemctl start nginx”

Le travail cron ci-dessus exécutera certbot à 2h25 tous les jours. Vous pouvez le changer en tout ce que vous voulez.

Enregistrez le fichier en appuyant sur Ctrl + X et en saisissant Y lorsque vous y êtes invité.

Démarrer Odoo

Maintenant que tout est configuré, nous pouvons redémarrer le serveur Odoo.

$ sudo systemctl start odoo-server

Lancez Odoo dans votre navigateur via https://odoo.yourdomain.com . Vous obtiendrez un écran décrit précédemment. Entrez les détails requis pour créer la base de données et vous devriez vous connecter à Odoo et voir un écran comme celui-ci.

Conclusion

Ceci conclut notre tutoriel sur l'installation d'Odoo sur le serveur Ubuntu 20.04. Si vous avez des questions, postez-les dans les commentaires ci-dessous.


Ubuntu
  1. Comment installer Odoo sur Ubuntu

  2. Comment installer le logiciel Audacity dans Ubuntu ??

  3. Installer Odoo 9 sur Ubuntu 14.04

  4. Comment installer Odoo 15 sur Ubuntu 22.04

  5. Comment installer Odoo 13 sur Ubuntu 20.04

Comment installer Odoo 13 dans Ubuntu

Comment installer Odoo sur Ubuntu 18.04

Comment installer Odoo sur Ubuntu 20.04

Comment installer Odoo 13 sur Ubuntu 22.04

Comment installer Odoo 14 sur Ubuntu 22.04

Comment installer Odoo 12 sur Ubuntu 20.04