GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come installare il software ERP Odoo 14 su Ubuntu 20.04

Odoo (precedentemente noto come OpenERP) è una suite self-hosted di oltre 10.000 applicazioni open source adatte a una varietà di esigenze aziendali tra cui CRM, eCommerce, contabilità, inventario, gestione dei progetti e punto vendita. Queste applicazioni sono completamente integrate e accessibili tramite un'interfaccia web comune.

In questo tutorial impareremo a installare Odoo 14 Stack su un server basato su Ubuntu 20.04.

Prerequisiti

  1. Un server basato su Ubuntu 20.04 con un minimo di 2 GB di RAM per ospitare Odoo Stack.

  2. Un secondo server basato su Ubuntu 20.04 con un minimo di 2 GB di RAM per ospitare il database PostgreSQL. È tuttavia possibile installare il database sullo stesso server di Odoo ma per gli ambienti di produzione si consiglia vivamente di installarlo su un server separato. Puoi anche scegliere una qualsiasi delle opzioni di database gestito disponibili da qualsiasi provider di tua scelta.

  3. Il fabbisogno di RAM dipenderà dal numero di utenti simultanei che utilizzeranno lo stack. Una guida dettagliata su come calcolare i requisiti di sistema è disponibile nella documentazione di Odoo.

  4. Tieni aggiornati i tuoi sistemi.

    $ sudo apt update
    $ sudo apt upgrade
    
  5. Un utente non root con privilegi sudo su entrambi i server.

Configura le regole del firewall

Ai fini di questo tutorial, assumeremo che tu abbia ufw firewall installato su entrambi i server.

Sul server Odoo, avremo bisogno delle porte 22, 80, 443, 6010, 5432 e 8069 per essere aperte. 22 è usato per SSH, 80 è per HTTP, 443 è per HTTPS, 6010 è usato per la comunicazione Odoo, 5432 è usato da PostgreSQL e 8069 è usato dall'applicazione server Odoo.

Esegui i seguenti comandi per aprire le porte richieste sul server 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

Sul server PostgreSQL, dobbiamo aprire le porte 22, 6010 e 5432. Aprirle usando i comandi appena discussi.

Assegna nomi host

È possibile utilizzare gli indirizzi IP dei server o utilizzare i loro nomi di dominio completi (FQDN), se disponibili. Per il nostro tutorial, utilizzeremo FQDN e per questo, dobbiamo impostare i nomi host su entrambi i server.

Sul server Odoo, apri /etc/hosts file.

$ sudo nano /etc/hosts

Assicurati che assomigli al seguente.

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

Sul server PostgreSQL, apri il file e assicurati che sia simile al seguente.

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

Premi Ctrl + X per chiudere l'editor e premere Y quando viene richiesto di salvare il file.

Installa e configura PostgreSQL

Ubuntu 20.04 viene fornito con PostgreSQL 12 per impostazione predefinita e lo installeremo. Esegui il seguente comando sul server PostgreSQL.

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

Successivamente, dobbiamo creare un utente del database odoo.

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

L'opzione -u esegue il comando come postgres utente.

L'opzione -U indicare il nome utente con cui connettersi.

L'opzione -d concede all'utente il permesso di creare database.

L'opzione -p richiede la password del nuovo utente.

Configura l'autenticazione basata su host

Dobbiamo dare l'autorizzazione al servizio PostgreSQL per poterci connettere al server Odoo.

Innanzitutto, arresta il servizio PostgreSQL.

$ sudo systemctl stop postgresql

Apri il file /etc/postgresql/12/main/pg_hba.conf per la modifica.

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

Incolla la riga seguente alla fine.

host		all		odoo		odoo.yourdomain.com		md5

Questa riga concede il permesso a odoo utente per connettersi a tutti i database all'interno di questo server. Puoi anche specificare il nome dei database invece di usare all parola chiave.

Premi Ctrl + X per chiudere l'editor e premere Y quando viene richiesto di salvare il file.

Configura indirizzo di ascolto PostgreSQL

Successivamente, è necessario consentire al server del database di ascoltare le connessioni remote. Apri il file /etc/postgresql/12/main/postgresql.conf per la modifica.

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

Modifica la riga listen_addresses da

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

a.

#From CONNECTIONS AND AUTHENTICATION Section
listen_addresses = '*'

Il * significa che ascolterà tutti gli indirizzi IP. Puoi cambiarlo con l'indirizzo IP della tua istanza di odoo.

Premi Ctrl + X per chiudere l'editor e premere Y quando viene richiesto di salvare il file.

Abilita e avvia il servizio PostgreSQL

Poiché la nostra configurazione è terminata, è ora di avviare e abilitare il servizio PostgreSQL.

$ sudo systemctl start postgresql && sudo systemctl enable postgresql

Installa Odoo

Installa le dipendenze e prepara per l'installazione

Crea un nuovo utente di sistema per la gestione dei processi Odoo sul server Odoo.

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

Abbiamo bisogno di installare alcune dipendenze di sistema, ma prima dobbiamo abilitare i repository di origine. Per fare ciò, esegui il backup dell'elenco delle fonti originale, quindi abilita tutti i repository di origine e aggiorna l'elenco dei repository.

$ 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

Installa le dipendenze di sistema necessarie per la configurazione di 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

Installa Nodejs.

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

Installa il pacchetto Less CSS usando Node.

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

Scarica wkhtmltopdf pacchetto versione 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

Installa il pacchetto.

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

Per garantire che wkhtmltopdf funziona correttamente, copia i binari in /usr/bin e dai loro le autorizzazioni appropriate.

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

Scarica file Odoo

Clona il repository Github di Odoo sul tuo sistema.

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

Per il nostro scopo, stiamo copiando Odoo in /opt/odoo directory da cui verrà installato.

Configura l'ambiente Virtualenv Python

Questo passaggio è facoltativo ma è consigliato poiché un ambiente python virtuale per Odoo aiuterà a evitare conflitti con i moduli Python del sistema operativo, specialmente durante l'esecuzione di aggiornamenti del sistema operativo.

Per questo useremo virtualenv .

  1. Crea un nuovo virtualenv ambiente per Odoo.

    $ python3 -m venv /home/<username>/odoo-env
    
  2. Attiva l'ambiente virtuale. Stiamo creando un ambiente nella directory home dell'utente di sistema. Sei libero di scegliere la posizione che preferisci.

    $ source /home/<username>/odoo-env/bin/activate
    
  3. Aggiorna PIP per ogni evenienza.

    (odoo-env) $ pip3 install --upgrade pip
    
  4. Installa la ruota di Python nell'ambiente virtuale.

    $ pip3 install wheel
    

Installa le dipendenze Python

Installa le dipendenze Python richieste da Odoo 14.

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

L'installazione dei requisiti richiederà del tempo, quindi sii paziente.

Verifica se i requisiti sono installati correttamente controllando l'elenco dei moduli Python installati.

$ 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

Esci dall'ambiente virtuale Python.

$ deactivate

Configura Odoo

Copia il file di configurazione Odoo predefinito per crearne uno nuovo.

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

Apri il file per la modifica.

$ sudo nano /etc/odoo-server.conf

Modifica il file in modo che assomigli al seguente.

[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

Premi Ctrl + X per chiudere l'editor e premere Y quando viene richiesto di salvare il file.

L'opzione admin_passwd è la password che consente le operazioni amministrative all'interno della GUI di Odoo. Assicurati di scegliere una password sicura.

L'opzione db_host è l'FQDN o l'indirizzo IP del server PostgreSQL.

L'opzione db_port è impostato su false poiché viene utilizzata la porta PostgreSQL predefinita 5432. Se desideri utilizzare una porta diversa, dovrai aggiornare questo valore.

L'opzione db_user è il nome dell'utente PostgreSQL.

L'opzione db_password è la password utente 'odoo' di PostgreSQL che abbiamo creato in precedenza sul server PostgreSQL.

L'opzione addons_path è il percorso dei componenti aggiuntivi predefinito. Puoi anche aggiungere un percorso personalizzato per i componenti aggiuntivi separandoli con virgole.

L'opzione xmlrpc_port è la porta su cui Odoo è in ascolto.

Crea il servizio Odoo

Per assicurarci che Odoo continui a funzionare anche dopo il riavvio del sistema, dobbiamo creare un servizio per esso.

Crea un file /lib/systemd/system/odoo-server.service e aprilo per la modifica.

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

Incolla il seguente codice al suo interno.

[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

Sostituisci /home/<username> con la posizione che hai scelto per l'installazione di Python Virtual Environment.

Premi Ctrl + X per chiudere l'editor e premere Y quando viene richiesto di salvare il file.

Imposta autorizzazioni file

Imposta le autorizzazioni su odoo-server.service file in modo che solo l'utente Odoo possa leggerlo o eseguirlo.

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

Imposta la proprietà sull'ambiente Python e sulla directory di installazione di Odoo.

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

Limita il file di configurazione di Odoo.

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

Avvia il server Odoo

Avvia e abilita il server Odoo.

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

Controlla lo stato del server.

$ sudo systemctl status odoo-server

Nel tuo browser, apri l'URL http://<yourIPaddress>:8069 o http://odoo.yourdomain.com:8069 . Se tutto funziona correttamente, dovresti vedere la schermata di creazione del database di Odoo.

Compila tutti i campi. Controlla i Demo Data campo per popolare il database con dati di esempio, quindi fare clic su Crea database pulsante.

Successivamente, ti verrà mostrato un elenco di app che puoi scegliere e selezionare.

La prima volta che crei un database, ci vorrà del tempo per caricare la pagina dei componenti aggiuntivi, quindi non aggiornare la pagina.

Installa e configura Nginx

Fino ad ora, abbiamo utilizzato il server di Odoo per eseguire lo stack. Ma idealmente, è meglio eseguirlo su Nginx usando un proxy perché ciò ci consentirà di installare SSL su di esso.

Installa Nginx.

$ sudo apt install nginx

Per eseguirlo tramite Nginx, dobbiamo eseguire Odoo su localhost. Per cambiarlo, interrompi il servizio Odoo.

$ sudo systemctl stop odoo-server

Apri il file di configurazione del server Odoo.

$ sudo nano /etc/odoo-server.conf

Aggiungi le seguenti righe.

xmlrpc_interface = 127.0.0.1
proxy_mode = True

Crea un file di configurazione Nginx per Odoo.

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

Incolla il codice qui sotto.

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

Premi Ctrl + X per chiudere l'editor e premere Y quando viene richiesto di salvare il file.

Attiva questo file di configurazione collegandolo a sites-enabled directory.

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

Testa la configurazione di Nginx.

$ sudo nginx -t

Installa SSL

Installeremo SSL utilizzando il servizio Let's Encrypt.

Per questo, installa Certbot.

$ sudo apt install certbot

Interrompi Nginx perché interferirà con il processo di Certbot.

$ sudo systemctl stop nginx

Genera il certificato. Dobbiamo anche creare un certificato DHParams.

$ 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

Abbiamo anche bisogno di impostare un cron job per rinnovare automaticamente SSL. Per aprire l'editor crontab, esegui il comando seguente.

$ sudo crontab -e

Incolla la riga seguente in basso.

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

Il processo cron di cui sopra verrà eseguito certbot ogni giorno alle 2:25. Puoi cambiarlo in qualsiasi cosa tu voglia.

Salva il file premendo Ctrl + X e inserendo Y quando richiesto.

Avvia Odoo

Ora che tutto è impostato, possiamo riavviare il server Odoo.

$ sudo systemctl start odoo-server

Avvia Odoo nel tuo browser tramite https://odoo.yourdomain.com . Otterrai una schermata descritta in precedenza. Inserisci i dettagli richiesti per creare il database e dovresti accedere a Odoo e vedere una schermata come questa.

Conclusione

Questo conclude il nostro tutorial sull'installazione di Odoo sul server Ubuntu 20.04. Se hai domande, pubblicale nei commenti qui sotto.


Ubuntu
  1. Come installare Odoo su Ubuntu

  2. Come installare il software Audacity in Ubuntu??

  3. Installa Odoo 9 su Ubuntu 14.04

  4. Come installare Odoo 15 su Ubuntu 22.04

  5. Come installare Odoo 13 su Ubuntu 20.04

Come installare Odoo 13 su Ubuntu

Come installare Odoo su Ubuntu 18.04

Come installare Odoo su Ubuntu 20.04

Come installare Odoo 13 su Ubuntu 22.04

Come installare Odoo 14 su Ubuntu 22.04

Come installare Odoo 12 su Ubuntu 20.04