How to Install Odoo 13 on Ubuntu 18.04
Sommario:
- Prerequisiti per l'installazione
- Creazione di un utente di sistema
- Installazione e configurazione di PostgreSQL
- Installazione di Wkhtmltopdf
- Installazione e configurazione di Odoo 13
- Creazione di un file di unità Systemd
- Test dell'installazione
- Configurazione di Nginx come proxy di terminazione SSL
- Modifica dell'interfaccia di associazione
- Abilitazione del multiprocessing
- Conclusione
Odoo è una popolare suite open-source di app aziendali. Offre una vasta gamma di applicazioni, tra cui CRM, e-Commerce, creazione di siti Web, fatturazione, contabilità, produzione, magazzino, gestione dei progetti, inventario e molto altro, il tutto perfettamente integrato.
Odoo può essere installato in diversi modi a seconda del caso d'uso e delle tecnologie disponibili. Il modo più semplice e veloce per installare Odoo è utilizzare i repository APT Odoo ufficiali.
L'installazione di Odoo in un ambiente virtuale o la distribuzione come contenitore Docker consente di avere un maggiore controllo sulla configurazione del sistema ed eseguire più versioni di Odoo sullo stesso sistema.
In questa guida, ti guideremo attraverso l'installazione e la distribuzione di Odoo 13 all'interno di un ambiente virtuale Python su Ubuntu 18.04. Scaricheremo Odoo dal loro repository Github e useremo Nginx come proxy inverso.
Prerequisiti per l'installazione
Accedi a Ubuntu come utente sudo e aggiorna la cache Apt:
sudo apt update
Installa Git, Pip, Node.js e gli strumenti necessari per creare dipendenze Odoo:
sudo apt install git python3-pip build-essential wget python3-dev python3-venv python3-wheel libxslt-dev libzip-dev libldap2-dev libsasl2-dev python3-setuptools node-less
Creazione di un utente di sistema
Crea un utente di sistema che eseguirà Odoo, chiamato
odoo13
con home directory
/opt/odoo13
:
sudo useradd -m -d /opt/odoo13 -U -r -s /bin/bash odoo13
Puoi impostare il nome dell'utente come preferisci, purché crei un utente PostgreSQL con lo stesso nome.
Installazione e configurazione di PostgreSQL
Odoo utilizza PostgreSQL come back-end del database. Per installare PostgreSQL eseguire il comando seguente:
sudo apt install postgresql
Una volta completata l'installazione, crea un utente PostgreSQL con lo stesso nome dell'utente di sistema precedentemente creato, nel nostro caso che è
odoo13
:
sudo su - postgres -c "createuser -s odoo13"
Installazione di Wkhtmltopdf
Il pacchetto
wkhtmltox
fornisce un set di strumenti da riga di comando open source che possono convertire HTML in PDF e vari formati di immagine. Per poter stampare report PDF, è necessario installare lo strumento
wkhtmltopdf
. La versione consigliata per Odoo è
0.12.5
, che non è disponibile nei repository Ubuntu 18.04 predefiniti.
Scarica il pacchetto usando il seguente comando wget:
wget
Una volta completato il download, installa il pacchetto digitando:
sudo apt install./wkhtmltox_0.12.5-1.bionic_amd64.deb
Installazione e configurazione di Odoo 13
Come accennato in precedenza, installeremo Odoo dal sorgente all'interno di un ambiente virtuale Python isolato.
Innanzitutto, passa all'utente "odoo13":
sudo su - odoo13
Clona il codice sorgente di Odoo 13 da GitHub:
git clone https://www.github.com/odoo/odoo --depth 1 --branch 13.0 /opt/odoo13/odoo
Una volta completato il download, crea un nuovo ambiente virtuale Python per Odoo:
cd /opt/odoo13
python3 -m venv odoo-venv
Attiva l'ambiente con il seguente comando:
source odoo-venv/bin/activate
Installa tutti i moduli Python richiesti con pip3:
pip3 install wheel
pip3 install -r odoo/requirements.txt
Se si riscontra un errore di compilazione durante l'installazione, assicurarsi che tutte le dipendenze richieste elencate nella sezione
Installing Prerequisites
installazione siano installate.
Una volta fatto, disattiva l'ambiente digitando:
deactivate
Creeremo una nuova directory che conterrà i componenti aggiuntivi di terze parti.
mkdir /opt/odoo13/odoo-custom-addons
Successivamente, aggiungeremo questa directory al parametro
addons_path
. Questo parametro definisce un elenco di directory in cui Odoo cerca i moduli.
Torna al tuo utente sudo:
exit
Creare un file di configurazione con il seguente contenuto:
sudo nano /etc/odoo13.conf
/etc/odoo13.conf
; This is the password that allows database operations: admin_passwd = my_admin_passwd db_host = False db_port = False db_user = odoo13 db_password = False addons_path = /opt/odoo13/odoo/addons, /opt/odoo13/odoo-custom-addons
Non dimenticare di cambiare
my_admin_passwd
in qualcosa di più sicuro.
Creazione di un file di unità Systemd
Apri l'editor di testo e crea un file di unità di servizio chiamato
odoo13.service
con il seguente contenuto:
sudo nano /etc/systemd/system/odoo13.service
/etc/systemd/system/odoo13.service
Description=Odoo13 Requires=postgresql.service After=network.target postgresql.service Type=simple SyslogIdentifier=odoo13 PermissionsStartOnly=true User=odoo13 Group=odoo13 ExecStart=/opt/odoo13/odoo-venv/bin/python3 /opt/odoo13/odoo/odoo-bin -c /etc/odoo13.conf StandardOutput=journal+console WantedBy=multi-user.target
Notifica a systemd che esiste un nuovo file di unità:
sudo systemctl daemon-reload
Avviare il servizio Odoo e abilitarlo per l'avvio all'avvio eseguendo:
sudo systemctl enable --now odoo13
Verifica lo stato del servizio:
sudo systemctl status odoo13
L'output dovrebbe essere simile al seguente, a indicare che il servizio Odoo è attivo e in esecuzione.
● odoo13.service Loaded: loaded (/etc/systemd/system/odoo13.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2019-10-19 20:06:23 UTC; 3s ago Main PID: 1860 (python3) Tasks: 4 (limit: 2362) CGroup: /system.slice/odoo13.service └─1860 /opt/odoo13/odoo-venv/bin/python3 /opt/odoo13/odoo/odoo-bin -c /etc/odoo13.conf
Per visualizzare i messaggi registrati dal servizio Odoo, utilizzare il comando seguente:
Test dell'installazione
Apri il browser e digita:
http://:8069
http://:8069
Supponendo che l'installazione abbia esito positivo, verrà visualizzata una schermata simile alla seguente:
Configurazione di Nginx come proxy di terminazione SSL
Il web server Odoo predefinito serve il traffico su HTTP. Per rendere più sicura la distribuzione di Odoo configureremo Nginx come proxy di terminazione SSL che servirà il traffico su
Il proxy di terminazione SSL è un server proxy che gestisce la crittografia / decrittografia SSL. Ciò significa che il proxy di terminazione (Nginx) elaborerà e decodificherà le connessioni TLS in arrivo (HTTPS) e passerà le richieste non crittografate al servizio interno (Odoo). Il traffico tra Nginx e Odoo non sarà crittografato (HTTP).
L'uso di un proxy inverso offre molti vantaggi come Bilanciamento del carico, Terminazione SSL, Memorizzazione nella cache, Compressione, Pubblicazione di contenuti statici e altro ancora.
Assicurarsi di aver soddisfatto i seguenti prerequisiti prima di continuare con questa sezione:
- Nome di dominio che punta all'IP del tuo server pubblico. Useremo
example.com
.Nginx installato.SSL certificato per il tuo dominio. È possibile installare un certificato SSL Let's Encrypt gratuito.
Apri il tuo editor di testo e crea / modifica il blocco del server di dominio:
sudo nano /etc/nginx/sites-enabled/example.com
La seguente configurazione imposta la terminazione SSL, il reindirizzamento da HTTP a HTTPS, il reindirizzamento da WWW a non WWW, memorizza nella cache i file statici e abilita la compressione GZip.
/etc/nginx/sites-enabled/example.com
# Odoo servers upstream odoo { server 127.0.0.1:8069; } upstream odoochat { server 127.0.0.1:8072; } # HTTP -> HTTPS server { listen 80; server_name www.example.com example.com; include snippets/letsencrypt.conf; return 301 https://example.com$request_uri; } # WWW -> NON WWW server { listen 443 ssl http2; server_name www.example.com; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem; include snippets/ssl.conf; return 301 https://example.com$request_uri; } server { listen 443 ssl http2; server_name example.com; proxy_read_timeout 720s; proxy_connect_timeout 720s; proxy_send_timeout 720s; # Proxy headers 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/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem; include snippets/ssl.conf; # log files access_log /var/log/nginx/odoo.access.log; error_log /var/log/nginx/odoo.error.log; # Handle longpoll requests location /longpolling { proxy_pass http://odoochat; } # Handle / requests location / { proxy_redirect off; proxy_pass http://odoo; } # Cache static files location ~* /web/static/ { proxy_cache_valid 200 90m; proxy_buffering on; expires 864000; proxy_pass http://odoo; } # Gzip gzip_types text/css text/less text/plain text/xml application/xml application/json application/javascript; gzip on; }
Non dimenticare di sostituire example.com con il tuo dominio Odoo e impostare il percorso corretto per i file del certificato SSL. Gli snippet utilizzati in questa configurazione sono creati in questa guida.
Al termine, riavvia il servizio Nginx:
sudo systemctl restart nginx
Successivamente, dobbiamo dire a Odoo di utilizzare il proxy. Per fare ciò, apri il file di configurazione e aggiungi la seguente riga:
/etc/odoo13.conf
proxy_mode = True
Riavvia il servizio Odoo per rendere effettive le modifiche:
sudo systemctl restart odoo13
A questo punto, il proxy inverso è configurato e puoi accedere alla tua istanza Odoo all'indirizzo:
https://example.com
Modifica dell'interfaccia di associazione
Questo passaggio è facoltativo, ma è una buona pratica di sicurezza.
Per impostazione predefinita, il server Odoo ascolta la porta
8069
su tutte le interfacce. Per disabilitare l'accesso diretto all'istanza Odoo, è possibile bloccare la porta
8069
per tutte le interfacce pubbliche o forzare Odoo ad ascoltare solo sull'interfaccia locale.
Configureremo Odoo per l'ascolto solo su
127.0.0.1
. Apri la configurazione aggiungi le seguenti due righe alla fine del file:
xmlrpc_interface = 127.0.0.1 netrpc_interface = 127.0.0.1
Salvare il file di configurazione e riavviare il server Odoo per rendere effettive le modifiche:
Abilitazione del multiprocessing
Per impostazione predefinita, Odoo funziona in modalità multithreading. Per le distribuzioni di produzione, si consiglia di passare al server multiprocessore in quanto aumenta la stabilità e consente un migliore utilizzo delle risorse di sistema.
Per abilitare il multiprocessing è necessario modificare la configurazione Odoo e impostare un numero diverso da zero di processi di lavoro. Il numero di lavoratori viene calcolato in base al numero di core della CPU nel sistema e alla memoria RAM disponibile.
Secondo la documentazione ufficiale di Odoo per calcolare il numero dei lavoratori e la dimensione della memoria RAM richiesta, è possibile utilizzare le seguenti formule e ipotesi:
Calcolo del numero di lavoratore
- Numero massimo teorico di worker = (system_cpus * 2) + 11 worker può servire ~ = 6 utenti simultanei Anche i lavoratori cronologici richiedono CPU
Calcolo della dimensione della memoria RAM
- Considereremo che il 20% di tutte le richieste sono richieste pesanti e l'80% sono richieste più leggere. Le richieste pesanti utilizzano circa 1 GB di RAM mentre quelle più leggere utilizzano circa 150 MB di RAM RAM necessaria =
number_of_workers * ((light_worker_ratio * light_worker_ram_estimation) + (heavy_worker_ratio * heavy_worker_ram_estimation))
grep -c ^processor /proc/cpuinfo
Supponiamo che tu abbia un sistema con 4 core CPU, 8 GB di memoria RAM e 30 utenti Odoo simultanei.
-
30 users / 6 = **5**
(5 è il numero teorico di lavoratori necessari)(4 * 2) + 1 = **9**
(9 è il numero massimo teorico di lavoratori)
Sulla base del calcolo di cui sopra, è possibile utilizzare 5 lavoratori + 1 lavoratore per il cronista per un totale di 6 lavoratori.
Calcola il consumo di memoria RAM in base al numero di lavoratori:
-
RAM = 6 * ((0.8*150) + (0.2*1024)) ~= 2 GB of RAM
Il calcolo mostra che l'installazione di Odoo richiederà circa 2 GB di RAM.
Per passare alla modalità multiprocessore, aprire il file di configurazione e aggiungere i valori calcolati:
/etc/odoo13.conf
limit_memory_hard = 2684354560 limit_memory_soft = 2147483648 limit_request = 8192 limit_time_cpu = 600 limit_time_real = 1200 max_cron_threads = 1 workers = 5
Riavvia il servizio Odoo per rendere effettive le modifiche:
sudo systemctl restart odoo13
Il resto delle risorse di sistema verrà utilizzato da altri servizi in esecuzione su questo sistema. In questa guida, abbiamo installato Odoo insieme a PostgreSQL e Nginx sullo stesso server. A seconda della configurazione, è possibile che sul server siano in esecuzione altri servizi.
Conclusione
Questo tutorial ti ha guidato attraverso l'installazione di Odoo 13 su Ubuntu 18.04 in un ambiente virtuale Python usando Nginx come proxy inverso. Ti abbiamo anche mostrato come abilitare il multiprocessing e ottimizzare Odoo per un ambiente di produzione.
Puoi anche consultare il nostro tutorial su come creare backup giornalieri automatici dei database Odoo.
ubuntu odoo postgresql python pip nginx proxy sslCome installare, installare la stampante multifunzione HP Officejet 6500a plus

Scopri come impostare e installare la stampante multifunzione HP Officejet 6500A Plus.
Come distribuire odoo 11 su Ubuntu 18.04

Questa guida illustra i passaggi necessari per l'installazione e la configurazione di Odoo per la produzione utilizzando l'origine Git e l'ambiente virtuale Python su un sistema Ubuntu 18.04.
Come installare odoo 11 su Ubuntu 16.04

Odoo è uno dei software aziendali più popolari al mondo. Questa guida illustra i passaggi necessari per l'installazione e la configurazione di Odoo utilizzando l'origine Git e l'ambiente virtuale Python su Ubuntu 16.04