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
- Prerequisiti
- Installazione delle dipendenze
- Installazione di Nodejs
- Installazione dell'applicazione Wkhtmltopdf
- Installazione del server database PostgreSQL
- Download di Odoo 16
- Installazione delle dipendenze Python per Odoo
- Creazione della configurazione di Odoo
- Esegui Odoo come servizio Systemd
- Esecuzione di Odoo con Nginx Reverse Proxy
- Impostazione del firewall UFW
- Migrazione del database e installazione di Odoo 16
- 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à.