Ricerca nel sito web

Come installare il software Odoo 16 ERP su Ubuntu 22.04


Questo tutorial esiste per queste versioni del sistema operativo

  • Ubuntu 22.04 (Jammy Jellyfish)
  • Ubuntu 15.04 (Vivid Vervet)

Su questa pagina

  1. Prerequisiti
  2. Installazione delle dipendenze
  3. Installazione di Nodejs
  4. Installazione dell'applicazione Wkhtmltopdf
  5. Installazione del server database PostgreSQL
  6. Download di Odoo 16
  7. Installazione delle dipendenze Python per Odoo
  8. Creazione della configurazione di Odoo
  9. Esegui Odoo come servizio Systemd
  10. Esecuzione di Odoo con Nginx Reverse Proxy
  11. Impostazione del firewall UFW
  12. Migrazione del database e installazione di Odoo 16
  13. Conclusione

Odoo (precedentemente noto come OpenERP) è una suite self-hosted di oltre 10.000 open Odoo è una soluzione ERP gratuita e open source per diversi tipi di aziende. Fornisce gestione delle relazioni con i clienti (CRM), pipeline di vendita, gestione dei progetti, produzione, fatturazione, contabilità, e-commerce e molti altri.

Odoo è una delle soluzioni ERP complete per la tua azienda. Viene fornito con 30 moduli principali per impostazione predefinita e fornisce più di 4500 moduli di comunità che possono aiutare le tue attività multiple.

In questo tutorial, useremo l'ERP open source Odoo sul server Ubuntu 22.04. Installeremo e configureremo l'ultima versione stabile di Odoo 16, configureremo il database PostgreSQL per Odoo e infine configureremo Nginx come proxy inverso per l'applicazione Odoo.

Prerequisiti

Per iniziare con questo tutorial, avrai bisogno dei seguenti requisiti:

  • Un server Ubuntu 22.04 - Questo esempio utilizza un server Ubuntu con il nome host odoo-server.
  • Un utente non root con sudo root/privilegi di amministratore - oppure puoi anche usare l'utente root.
  • Un nome di dominio indicava l'indirizzo IP del server: per la produzione, avrai bisogno di un nome di dominio per l'installazione di Odoo.

Installazione delle dipendenze

Per installare Odoo, devi prima installare alcune dipendenze del pacchetto sul tuo sistema Ubuntu. Odoo ERP è un'applicazione web scritta principalmente in Python, quindi dovrai installare anche alcuni pacchetti Python.

Prima di iniziare l'installazione dei pacchetti, eseguire il seguente comando apt per aggiornare e rinfrescare l'indice del pacchetto.

sudo apt update

Successivamente, installa le dipendenze del pacchetto per odoo tramite il seguente comando apt. Questa installazione includerà l'ultima versione di Python 3.10, build-essentials per la compilazione di pacchetti Python e alcune librerie necessarie a odoo.

sudo apt install git wget python3 build-essential libzip-dev python3-dev libxslt1-dev python3-pip libldap2-dev python3-wheel libsasl2-dev python3-venv python3-setuptools node-less libjpeg-dev xfonts-75dpi xfonts-base libxrender1 libpq-dev libffi-dev fontconfig

Quando richiesto, inserire y per confermare e premere INVIO per procedere. E l'installazione inizierà.

Una volta installati Python e altre dipendenze, il passaggio successivo consiste nell'installare Node.js che verrà utilizzato per generare file statici e installare il pacchetto wkhtmltopdf per generare report PDF.

Installazione di Nodejs

Per installare Odoo, devi assicurarti che Node.js sia installato sul tuo sistema. Node.js viene utilizzato per generare file statici per le applicazioni Web odoo. In questo passaggio, installerai Node.js 16 dal repository Nodesource di terze parti.

Esegui il seguente comando per scaricare e configurare il repository Nodesource per Node.js 16.

sudo curl -sL https://deb.nodesource.com/setup_16.x | sudo -E bash -

Questo comando scaricherà ed eseguirà lo script del programma di installazione, quindi lo script del programma di installazione imposterà automaticamente il repository per Node.js, aggiungerà la chiave GPG e aggiornerà e aggiornerà automaticamente l'indice del pacchetto sul tuo sistema.

Successivamente, esegui il seguente comando apt per installare il pacchetto Node.js. Quando richiesto, inserire y per confermare e premere INVIO per procedere.

sudo apt install nodejs

Una volta installato Node.js, esegui il seguente comando npm per installare il pacchetto rtlcss.
Il pacchetto rtlcss è necessario per odoo, soprattutto se stai utilizzando l'interfaccia utente da destra a sinistra per lingue specifiche come l'arabo e l'ebraico.

sudo npm install -g rtlcss

Installazione dell'applicazione Wkhtmltopdf

L'ERP open source odoo richiedeva l'installazione del pacchetto wkhtmltopdf. Questo pacchetto è necessario per il rendering di pagine HTML in PDF e vari formati di immagine tramite Qt Webkit. Il pacchetto wkhtmltopdf verrà installato manualmente tramite il pacchetto .deb nel sistema Ubuntu.

Eseguire il seguente comando per scaricare il file .deb del pacchetto Wkhtmltopdf.

cd /tmp
wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-2/wkhtmltox_0.12.6.1-2.jammy_amd64.deb

Installa il pacchetto Wkhtmltopdf tramite il comando dpkg di seguito.

sudo dpkg -i wkhtmltox_0.12.6.1-2.jammy_amd64.deb

Se ricevi un errore come un pacchetto mancante, correggilo tramite il seguente comando apt.

sudo apt install -f

Dopo aver installato Wkhtmltopdf, puoi verificare il file binario del pacchetto Wkhtmltopdf disponibile per impostazione predefinita nella directory /usr/local/bin. Dovresti vedere due programmi wkhtmltopdf e wkhtmltoimage.

ls /usr/local/bin

Ora esegui il seguente comando per verificare la variabile d'ambiente PATH e assicurati che la directory /usr/local/bin sia disponibile sul PATH binario. In caso contrario, il pacchetto Wkhtmltopdf non funzionerà correttamente.

echo $PATH

Infine, esegui il seguente comando per assicurarti che il percorso binario per il pacchetto Wkhtmltopdf sia disponibile. Se il pacchetto Wkhtmltopdf è disponibile, dovresti ricevere un output del percorso completo del pacchetto Wkhtmltopdf.

which wkhtmltopdf
which wkhtmltoimage

Installazione del server database PostgreSQL

L'ERP open source odoo supporta database come MySQL, SQLite e PostgreSQL. In questo passaggio, installerai e utilizzerai PostgreSQL come database predefinito per la tua installazione di odoo. Inoltre, configurerai il ruolo PostgreSQL e apporterai modifiche alla configurazione di PostgreSQL.

Eseguire il seguente comando apt per installare il server di database PostgreSQL. Quando viene richiesta la conferma, immettere y e premere INVIO.

sudo apt install postgresql

Dopo l'installazione di PostgreSQL, esegui il comando seguente per verificare PostgreSQL e assicurati che il servizio sia abilitato e in esecuzione.

sudo systemctl is-enabled postgresql
sudo systemctl status postgresql

Nell'output seguente, puoi vedere che il servizio PostgreSQL è abilitato e verrà eseguito automaticamente all'avvio del sistema. E lo stato di PostgreSQL è in esecuzione.

Successivamente, creerai un nuovo ruolo per l'odoo. Esegui il seguente comando per accedere all'utente postgres e creare un nuovo ruolo con il nome odoo.

su - postgres
createuser -sdP odoo

Inserisci la password per il nuovo ruolo odoo e ripetila.

Ora accedi alla shell PostgreSQL tramite il comando psql di seguito.

psql

Esegui la seguente query per verificare l'elenco dei ruoli su PostgreSQL e assicurati che il ruolo odoo sia disponibile.

\du

Ora inserisci \q per uscire dalla shell PostgreSQL. Quindi, digita exit per disconnetterti dall'utente postgres.

Ora, dopo aver creato un ruolo per odoo, imposterai l'autenticazione per il ruolo odoo.

Modifica la configurazione di PostgreSQL /etc/postgresql/14/main/pg_hba.conf utilizzando il seguente editor nano.

sudo nano /etc/postgresql/14/main/pg_hba.conf

Aggiungere la seguente configurazione al file. Con questo, consentirai l'accesso a PostgreSQL per il ruolo odoo con l'autenticazione della password scram-sha-256.

host    all   odoo    127.0.0.1/32    scram-sha-256

Salva il file ed esci dall'editor quando hai finito.

Ora esegui il seguente comando per riavviare il servizio PostgreSQL e applicare le nuove modifiche.

sudo systemctl restart postgresql

Infine, accedi come utente postgres e verifica il ruolo odoo accedendo alla shell PostgreSQL tramite il comando psql come di seguito.

su - postgres
psql -h 127.0.0.1 -U odoo -d postgres

Dopo aver effettuato l'accesso, verificare utilizzando la seguente query.

\conninfo

Ora dovresti vedere che sei connesso a PostgreSQL usando il ruolo odoo.

A questo punto, la preparazione del database PostgreSQL per odoo è terminata. Successivamente, avvierai l'installazione di odoo scaricando il codice sorgente e installando le dipendenze di Python.

Download di Odoo 16

Per questa demo, configurerai ed eseguirai odoo v16 con l'utente odoo. Quindi ora creerai un nuovo utente Unix odoo e scaricherai l'ultima versione del codice sorgente di odoo 16.

Esegui il seguente comando per creare un nuovo utente odoo. In questo esempio, la home directory predefinita per l'utente odoo sarebbe /opt/odoo e la shell predefinita è bash.

sudo adduser --system --group --home=/opt/odoo --shell=/bin/bash odoo

Ora sposta la directory di lavoro in /opt/odoo e scarica il codice sorgente di odoo tramite il seguente comando git. In questo esempio, installerai odoo 16.

cd /opt/odoo
git clone https://github.com/odoo/odoo.git --depth 1 --branch 16.0 --single-branch odoo-server

Ora dovresti ottenere la nuova directory odoo-server all'interno della directory /opt/odoo.

Infine, esegui il seguente comando per modificare la proprietà del codice sorgente odoo all'utente e al gruppo odoo.

sudo chown -R odoo:odoo /opt/odoo/odoo-server

Dopo aver scaricato il codice sorgente di odoo, avvierai l'installazione delle dipendenze del pacchetto Python per odoo.

Installazione delle dipendenze Python per Odoo

In questo passaggio, configurerai l'ambiente virtuale Python per odoo e installerai le dipendenze Python tramite il comando pip3.

Sposta la directory di lavoro in /opt/odoo/odoo-server e crea un nuovo ambiente virtuale Python venv tramite il seguente comando.

cd /opt/odoo/odoo-server
python3 -m venv venv

Successivamente, attiva l'ambiente virtuale Python venv tramite il seguente comando.

source venv/bin/activate

Dopo aver attivato l'ambiente virtuale Python, vedrai che la tua shell attuale è cambiata in (venv) [email .

Ora esegui il seguente comando pip3 per installare la ruota del pacchetto Python e installa le dipendenze di odoo Python tramite il file requirements.txt.

pip3 install wheel
pip3 install -r requirements.txt

Dopo aver installato le dipendenze Python, eseguire il comando seguente per uscire dall'ambiente virtuale Python venv.

deactivate

Ora hai scaricato il codice sorgente di odoo e installato le dipendenze di Python. Successivamente, creerai una nuova configurazione e directory per l'installazione di odoo.

Creazione della configurazione di Odoo

Dopo aver installato le dipendenze del pacchetto per Odoo, inizierai a creare la configurazione per odoo e configurare odoo come servizio systemd.

Crea un nuovo file di configurazione /etc/odoo.conf utilizzando il seguente editor nano.

sudo nano /etc/odoo.conf

Aggiungere la seguente configurazione al file. E assicurati di modificare l'utente e la password del database admin_passwd e dei dettagli con i tuoi dati.

[options]
; This is the password that allows database operations:
admin_passwd = adminpassodoo
db_host = 127.0.0.1
db_port = 5432
db_user = odoo
db_password = odoopass
addons_path = /opt/odoo/odoo-server/addons
xmlrpc_port = 8069
logfile = /var/log/odoo/odoo-server.log
log_level  = debug

Salva il file ed esci dall'editor.

Ora cambia la proprietà del file di configurazione di odoo /etc/odoo.conf all'utente di sistema odoo.

sudo chown odoo:odoo /etc/odoo.conf

Successivamente, esegui il seguente comando per creare una nuova directory che verrà utilizzata per archiviare i log per odoo.

sudo mkdir /var/log/odoo

Quindi, modifica la proprietà della directory di registro di odoo /var/log/odoo nell'utente odoo e modifica l'autorizzazione in 755.

sudo chown odoo:odoo /var/log/odoo 
sudo chmod 755 /var/log/odoo

Eseguire Odoo come servizio Systemd

A questo punto, puoi eseguire odoo manualmente tramite la riga di comando. Per semplificare, puoi eseguire odoo come servizio systemd. Ciò consente di gestire odoo tramite il comando systemctl.

Ora creerai un nuovo file di servizio systemd ed eseguirai odoo come servizio systemd.

Per iniziare, crea un nuovo file di servizio systemd /lib/systemd/system/odoo-server.service utilizzando il seguente editor nano.

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

Aggiungere la seguente configurazione al file.

[Unit]
Description=Odoo 16.0 Service
Requires=postgresql.service
After=network.target postgresql.service
 
[Service]
Type=simple
SyslogIdentifier=odoo
PermissionsStartOnly=true
User=odoo
Group=odoo
ExecStart=/opt/odoo/odoo-server/venv/bin/python3 /opt/odoo/odoo-server/odoo-bin -c /etc/odoo.conf
StandardOutput=journal+console
 
[Install]
WantedBy=multi-user.target

Salva il file ed esci dall'editor quando hai finito.

Successivamente, ricarica il gestore systemd per applicare un nuovo file di servizio tramite il comando systemctl di seguito.

sudo systemctl daemon-reload

Avvia e abilita il servizio odoo-server utilizzando il seguente comando.

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

Infine, verifica il servizio odoo per assicurarti che sia in esecuzione.

sudo systemctl status odoo-server

Dovresti ricevere l'output del servizio odoo-server in esecuzione.

Eseguire Odoo con Nginx Reverse Proxy

Il modo consigliato per distribuire odoo in produzione è utilizzare il proxy inverso. Ciò consente di eseguire odoo solo sull'host locale e tutti gli accessi client saranno gestiti dal proxy inverso.

In questo passaggio, installerai e configurerai il server web Nginx come proxy inverso per l'applicazione web odoo. Avrai anche l'installazione di odoo protetta con SSL. Quindi, prima di iniziare a configurare Nginx, assicurati di avere il nome di dominio indirizzato all'indirizzo IP del server e di aver generato SSL Letsencrypt.

Per prima cosa, modifica il file di configurazione di odoo /etc/odoo.conf usando il seguente editor nano.

sudo nano /etc/odoo.conf

Aggiungere la seguente configurazione al file. Questa configurazione eseguirà odoo come applicazione back-end che verrà eseguita su 127.0.0.1.

xmlrpc_interface = 127.0.0.1
proxy_mode = True

Salva il file ed esci dall'editor quando hai finito.

Ora esegui il seguente comando per riavviare il servizio odoo-server e applicare le nuove modifiche.

sudo systemctl restart odoo-server

Ora verifica il servizio odoo-server per assicurarti che sia in esecuzione.

sudo systemctl status odoo-server

Successivamente, installerai e configurerai Nginx.

Eseguire il seguente comando apt per installare il pacchetto del server Web Nginx. Immettere y quando richiesto e premere INVIO per procedere e confermare l'installazione.

sudo apt install nginx

Dopo l'installazione di Nginx, crea una nuova configurazione dei blocchi del server Nginx /etc/nginx/sites-available/odoo.conf utilizzando il seguente editor nano.

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

Aggiungi la configurazione di seguito al file e assicurati di modificare il nome di dominio e il percorso dei certificati SSL con le tue impostazioni.

#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.hwdomain.io;
   rewrite ^(.*) https://$host$1 permanent;
}

server {
 listen 443 ssl http2;
 server_name odoo.hwdomain.io;
 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.hwdomain.io/fullchain.pem;
 ssl_certificate_key /etc/letsencrypt/live/odoo.hwdomain.io/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;

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

Salva il file e chiudi l'editor quando hai finito.

Ora attiva la nuova configurazione del blocco del server Nginx e verifica la configurazione Nginx per assicurarti di avere le configurazioni corrette.

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

Se le tue configurazioni sono corrette, vedrai il messaggio di output come test riuscito - sintassi OK.

Infine, esegui il seguente comando systemctl per riavviare il servizio Nginx e applicare le nuove modifiche.

sudo systemctl restart nginx

A questo punto, hai terminato l'installazione e la configurazione del reverse proxy Nginx per l'ERP odoo. È ora possibile accedere all'installazione tramite il browser web.

Eseguire il comando seguente per verificare il servizio Nginx e assicurarsi che sia in esecuzione.

sudo systemctl restart nginx

Dovresti ottenere il servizio Nginx in esecuzione.

Configurazione del firewall UFW

Si consiglia di abilitare il firewall sull'installazione di odoo. In questo passaggio imparerai come configurare il firewall UFW.

Per impostazione predefinita, il server Ubuntu generico ha il pacchetto ufw installato, quindi puoi semplicemente iniziare a configurarlo.

Eseguire il comando seguente per aggiungere l'applicazione OpenSSH al firewall ufw. Quindi, esegui e abilita ufw.

sudo ufw allow "OpenSSH"
sudo ufw enable

Quando viene richiesta la conferma, immettere y e premere INVIO per procedere. E il servizio firewall ufw sarà abilitato e funzionante.

Successivamente, esegui il seguente comando per aggiungere l'applicazione Nginx Full. Questo profilo dell'applicazione è fornito dai pacchetti Nginx nell'installazione predefinita e aprirà entrambe le porte HTTP e HTTPS per la tua applicazione.

sudo ufw allow "Nginx Full"

Infine, verifica l'elenco delle regole abilitate su ufw. Dovresti vedere due applicazioni OpenSSH e Nginx Full abilitate.

sudo ufw status

Migrazione del database e installazione di Odoo 16

Apri il tuo browser web e visita il nome di dominio della tua installazione di odoo (ad esempio: https://odoo.hwdomain.io/).

Inizialmente, dovrai migrare il database per odoo e creare un nuovo utente amministratore.

La password principale qui è admin_passwd che hai appena aggiunto al file /etc/odoo.conf.

Inserisci il nuovo nome del database che verrà creato automaticamente e inserisci i dettagli del nuovo utente amministratore e della password per l'installazione di odoo. Inoltre, puoi anche selezionare la casella di controllo Dati demo per aggiungere i dati demo alla tua installazione.

Fare clic su Crea database per avviare l'installazione di odoo.

Dopo l'installazione di odoo, verrai reindirizzato alla pagina di accesso di odoo. Inserisci l'e-mail e la password dell'amministratore per il tuo odoo e fai clic su Accedi.

Ora dovresti ottenere la dashboard utente di odoo.

Conclusione

Congratulazioni! Ora hai installato Odoo ERP open source su un server Ubuntu 22.04. Ora hai anche appreso l'installazione di base del server di database PostgreSQL e del server Web Nginx configurato come proxy inverso.

A questo punto, hai completamente protetto l'installazione di Odoo sul tuo server Ubuntu. Ora puoi iniziare ad aggiungere alcuni plug-in/add-on aggiuntivi adatti alla tua attività.