Come installare il software Odoo 14 ERP su Ubuntu 20.04
Questo tutorial esiste per queste versioni del sistema operativo
- Ubuntu 15.04 (Vivid Vervet)
Su questa pagina
- Prerequisiti
- Configura le regole del firewall
- Assegna nomi host
- Installa e configura PostgreSQL
- Configura l'autenticazione basata su host
- Configura l'indirizzo di ascolto PostgreSQL
- Abilita e avvia il servizio PostgreSQL
- Installa le dipendenze e Prepara per l'installazione
- Scarica file Odoo
- Imposta l'ambiente Virtualenv Python
- Installa le dipendenze di Python
- Crea il servizio Odoo
- Imposta i permessi dei file
- Avvia il server Odoo
Odoo (precedentemente noto come OpenERP) è una suite self-hosted di oltre 10.000 applicazioni open source adatta 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
-
A Ubuntu 20.04 based server with a minimum of 2GB RAM to host Odoo Stack.
-
A second Ubuntu 20.04 based server with a minimum of 2GB RAM for hosting the PostgreSQL database. You can however install the database on the same server as Odoo but for production environments, it is highly recommended that you install it on a separate server. You can also choose any of the managed database options available from any provider of your choice.
-
RAM requirement will depend on the number of concurrent users that will be using the stack. A detailed guide on how to calculate system requirements can be found in Odoo's documentation.
-
Keep your systems updated.
$ sudo apt update $ sudo apt upgrade
-
A non-root user with sudo privileges on both servers.
Configura le regole del firewall
Ai fini di questo tutorial, supponiamo che tu abbia il firewall
ufw
installato su entrambi i server.Sul server Odoo, avremo bisogno che le porte 22, 80, 443, 6010, 5432 e 8069 siano 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 i nomi di dominio completi e per questo dobbiamo impostare i nomi host su entrambi i server.
Sul server Odoo, apri il file
/etc/hosts
.$ 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 premi Y quando ti viene chiesto di salvare il file.
Installa e configura PostgreSQL
Ubuntu 20.04 viene fornito con PostgreSQL 12 per impostazione predefinita e lo installeremo. Eseguire 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 utentepostgres
.L'opzione
-U
indica 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.Configurare l'autenticazione basata su host
Dobbiamo dare il permesso 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 seguente riga alla fine.
host all odoo odoo.yourdomain.com md5
Questa riga concede il permesso all'utente
odoo
di connettersi a tutti i database all'interno di questo server. Puoi anche specificare il nome dei database invece di usare la parola chiaveall
.Premi Ctrl + X per chiudere l'editor e premi Y quando ti viene chiesto di salvare il file.
Configura l'indirizzo di ascolto PostgreSQL
Successivamente, dobbiamo 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
Cambia 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 odoo.Premi Ctrl + X per chiudere l'editor e premi Y quando ti viene chiesto 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
Dobbiamo installare alcune dipendenze di sistema, ma prima dobbiamo abilitare i repository di origine. Per fare ciò, eseguire il backup dell'elenco delle fonti originali, quindi abilitare tutti i repository di origine e aggiornare 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 richieste 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 il pacchetto
wkhtmltopdf
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 assicurarti che
wkhtmltopdf
funzioni correttamente, copia i file binari in/usr/bin
e dai loro i permessi appropriati.$ sudo cp /usr/local/bin/wkhtmlto* /usr/bin/ $ sudo chmod a+x /usr/bin/wk* $ cd ~
Scarica i file Odoo
Clona il repository Odoos Github 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 nella directory
/opt/odoo
da dove verrà installato.Configura l'ambiente Python di Virtualenv
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 degli aggiornamenti del sistema operativo.
Per questo, useremo
virtualenv
.-
Create a new
virtualenv
environment for Odoo.$ python3 -m venv /home/<username>/odoo-env
-
Activate the virtual environment. We are creating an environment under the system user's home directory. You are free to choose any location you like.
$ source /home/<username>/odoo-env/bin/activate
-
Update PIP just in case.
(odoo-env) $ pip3 install --upgrade pip
-
Install Python's wheel in the virtual environment.
$ pip3 install wheel
Installa le dipendenze di 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
Uscire 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 premi Y quando ti viene chiesto 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
è impostata su false poiché viene utilizzata la porta 5432 predefinita di PostgreSQL. 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 di PostgreSQL odoo che abbiamo creato in precedenza sul server PostgreSQL.L'opzione
addons_path
è il percorso predefinito dei componenti aggiuntivi. 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 un 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 modificarlo.$ 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/
con il percorso che hai scelto per l'installazione di Python Virtual Environment.Premi Ctrl + X per chiudere l'editor e premi Y quando ti viene chiesto di salvare il file.
Imposta i permessi dei file
Imposta le autorizzazioni sul file
odoo-server.service
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://
o:8069 http://odoo.yourdomain.com:8069
. Se tutto funziona correttamente, dovresti vedere la schermata di creazione del database di Odoos.Compila tutti i campi. Seleziona il campo
Dati dimostrativi
per popolare il database con dati di esempio, quindi fai clic sul pulsante Crea database.Successivamente, ti verrà mostrato un elenco di app che puoi scegliere e selezionare.
La prima volta che crei un database, la pagina dei componenti aggiuntivi impiegherà del tempo per caricarsi, quindi non aggiornare la pagina.
Installa e configura Nginx
Fino ad ora, abbiamo utilizzato il server Odoos per eseguire lo stack. Ma idealmente, è meglio eseguirlo su Nginx utilizzando 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 ad esso.
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 premi Y quando ti viene chiesto di salvare il file.
Attiva questo file di configurazione collegandolo alla directory
sites-enabled
.$ sudo ln -s /etc/nginx/sites-available/odoo.conf /etc/nginx/sites-enabled/
Testare la configurazione di Nginx.
$ sudo nginx -t
Installa SSL
Installeremo SSL utilizzando il servizio Lets Encrypt.
Per questo, installa Certbot.
$ sudo apt install certbot
Arresta Nginx perché interferirà con il processo Certbot.
$ sudo systemctl stop nginx
Genera il certificato. Abbiamo anche bisogno di creare un certificato DHParams.
$ sudo certbot certonly --standalone -d odoo.yourdomain.com --preferred-challenges http --agree-tos -n -m --keep-until-expiring $ sudo systemctl start nginx $ sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
Dobbiamo anche impostare un cron job per il rinnovo automatico di SSL. Per aprire l'editor crontab, eseguire il seguente comando.
$ sudo crontab -e
Incolla la seguente riga in basso.
25 2 * * * /usr/bin/certbot renew --quiet --pre-hook “systemctl stop nginx” --post-hook “systemctl start nginx”
Il lavoro cron di cui sopra eseguirà certbot alle 2:25 ogni giorno. Puoi cambiarlo in qualsiasi cosa tu voglia.
Salva il file premendo Ctrl + X e immettendo Y quando richiesto.
Avvia Odoo
Ora che tutto è configurato, 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.