Odoo è un software ERP gratuito, open source e più popolare che offre un'ampia gamma di applicazioni aziendali tra cui gestione delle relazioni con i clienti (CRM), pipeline di vendita, gestione dei progetti, produzione , fatturazione, contabilità, eCommerce e molti altri. È un'applicazione basata sul Web e completa di funzionalità che ti aiuta a mantenere l'ERP in qualsiasi azienda. Odoo viene fornito con 30 moduli principali e più di 4500 moduli creati dalla community che ti aiutano a personalizzarlo come un piccolo negozio per un'azienda di livello aziendale.
In questo tutorial impareremo come installare e configurare Odoo 13 con Nginx come proxy inverso sul server CentOS 8.
Requisiti
- Un server con CentOS 8 con minimo 2 GB di RAM.
- Un nome di dominio valido puntato all'IP del tuo server. In questo tutorial utilizzeremo il dominio exmaple.com..
- Sul server è configurata una password di root.
Per iniziare
Innanzitutto, aggiorna il sistema e installa il repository EPEL con il seguente comando:
dnf update
dnf install epel-release
Successivamente, dovrai installare alcuni strumenti e dipendenze necessari per creare Odoo sul tuo sistema.
Puoi installarli tutti con il seguente comando:
dnf install python36 python36-devel git gcc wget nodejs libxslt-devel bzip2-devel openldap-devel libjpeg-devel freetype-devel
Una volta installati tutti i pacchetti, puoi procedere al passaggio successivo.
Crea utente Odoo
Successivamente, dovrai creare un nuovo utente di sistema con nome odoo e home directory /opt/odoo usando il seguente comando:
useradd -m -U -r -d /opt/odoo -s /bin/bash odoo
Una volta terminato, puoi procedere al passaggio successivo.
Installa e configura PostgreSQL
Odoo utilizza PostgreSQL per archiviare i propri dati. Quindi dovrai installare PostgreSQL sul tuo server. Puoi installarlo con il seguente comando:
dnf install postgresql postgresql-server postgresql-contrib
Una volta installato, inizializzare il database con il seguente comando:
/usr/bin/postgresql-setup initdb
Dovresti ottenere il seguente output:
* Initializing database in '/var/lib/pgsql/data' * Initialized, logs are in /var/lib/pgsql/initdb_postgresql.log
Quindi, avvia il servizio PostgreSQL e abilitalo all'avvio dopo il riavvio del sistema con il seguente comando:
systemctl start postgresql
systemctl enable postgresql
Ora puoi verificare PostgreSQL usando il seguente comando:
systemctl status postgresql
Dovresti vedere il seguente output:
? postgresql.service - PostgreSQL database server Loaded: loaded (/usr/lib/systemd/system/postgresql.service; disabled; vendor preset: disabled) Active: active (running) since Mon 2019-12-02 01:01:44 EST; 6s ago Process: 31805 ExecStartPre=/usr/libexec/postgresql-check-db-dir postgresql (code=exited, status=0/SUCCESS) Main PID: 31808 (postmaster) Tasks: 8 (limit: 12552) Memory: 16.5M CGroup: /system.slice/postgresql.service ??31808 /usr/bin/postmaster -D /var/lib/pgsql/data ??31809 postgres: logger process ??31811 postgres: checkpointer process ??31812 postgres: writer process ??31813 postgres: wal writer process ??31814 postgres: autovacuum launcher process ??31815 postgres: stats collector process ??31816 postgres: bgworker: logical replication launcher
Successivamente, dovrai creare un nuovo utente PostgreSQL con lo stesso nome dell'utente di sistema come mostrato di seguito:
su - postgres -c "createuser -s odoo"
Installa Wkhtmltopdf
Successivamente, dovrai installare lo strumento wkhtmltopdf nel tuo sistema in modo che Odoo possa stampare report PDF. Puoi installarlo con il seguente comando:
wget https://downloads.wkhtmltopdf.org/0.12/0.12.5/wkhtmltox-0.12.5-1.centos7.x86_64.rpm
dnf localinstall wkhtmltox-0.12.5-1.centos7.x86_64.rpm
Una volta installato, puoi procedere al passaggio successivo.
Installa e configura Odoo 13
Per prima cosa, passa all'utente Odoo con il seguente comando:
su - odoo
Quindi, scarica l'ultima versione di Odoo 13 dal repository Git usando il comando git:
git clone https://www.github.com/odoo/odoo --depth 1 --branch 13.0 /opt/odoo/odoo13
Quindi, crea un nuovo ambiente virtuale per l'istanza di Odoo 13 con il seguente comando:
cd /opt/odoo
python3 -m venv odoo13-venv
Successivamente, attiva l'ambiente virtuale con il seguente comando:
source odoo13-venv/bin/activate
Dovresti ottenere il seguente output:
(odoo13-venv) [[email protected] ~]$
Quindi, installa tutti i moduli Python richiesti per Odoo 13 con il seguente comando:
pip3 install -r odoo13/requirements.txt
Una volta installati tutti i moduli richiesti, disattivare l'ambiente virtuale con il seguente comando:
deactivate
Infine, esci dall'utente Odoo con il seguente comando:
exit
Quindi, crea una nuova directory per archiviare i moduli personalizzati di Odoo e i log di Odoo:
mkdir /opt/odoo/odoo13-custom-addons
mkdir /var/log/odoo13
touch /var/log/odoo13/odoo.log
Quindi, cambia la proprietà di entrambe le directory all'utente odoo con il seguente comando:
chown -R odoo:odoo /opt/odoo/odoo13-custom-addons
chown -R odoo:odoo /var/log/odoo13/
Quindi, crea un nuovo file di configurazione per Odoo 13 usando il seguente comando:
nano /etc/odoo.conf
Aggiungi le seguenti righe:
[options] admin_passwd = [email protected] db_host = False db_port = False db_user = odoo db_password = False xmlrpc_port = 8069 logfile = /var/log/odoo13/odoo.log logrotate = True addons_path = /opt/odoo/odoo13/addons,/opt/odoo/odoo13-custom-addons
Salva e chiudi il file quando hai finito.
Crea un file Systemd Service per Odoo 13
Successivamente, dovrai creare un nuovo file di unità systemd per Odoo 13 per gestire il servizio Odoo.
Puoi crearlo con il seguente comando:
nano /etc/systemd/system/odoo13.service
Aggiungi le seguenti righe:
[Unit] Description=Odoo13 #Requires=postgresql-10.6.service #After=network.target postgresql-10.6.service [Service] Type=simple SyslogIdentifier=odoo13 PermissionsStartOnly=true User=odoo Group=odoo ExecStart=/opt/odoo/odoo13-venv/bin/python3 /opt/odoo/odoo13/odoo-bin -c /etc/odoo.conf StandardOutput=journal+console [Install] WantedBy=multi-user.target
Salva e chiudi il file. Quindi, ricarica il demone systemd con il seguente comando:
systemctl daemon-reload
Quindi, avvia il servizio Odoo e abilitalo all'avvio dopo il riavvio del sistema con il seguente comando:
systemctl start odoo13
systemctl enable odoo13
Puoi anche verificare lo stato di Odoo con il seguente comando:
systemctl status odoo13
Dovresti ottenere il seguente output:
? odoo13.service - Odoo13 Loaded: loaded (/etc/systemd/system/odoo13.service; disabled; vendor preset: disabled) Active: active (running) since Mon 2019-12-02 01:15:43 EST; 2s ago Main PID: 17022 (python3) Tasks: 4 (limit: 12552) Memory: 63.7M CGroup: /system.slice/odoo13.service ??17022 /opt/odoo/odoo13-venv/bin/python3 /opt/odoo/odoo13/odoo-bin -c /etc/odoo.conf Dec 02 01:15:43 centos8 systemd[1]: Started Odoo13.
Per impostazione predefinita, Odoo è in ascolto sulla porta 8069. Puoi verificarlo con il seguente comando:
netstat -plntu | grep 8069
Dovresti vedere il seguente output:
tcp 0 0 0.0.0.0:8069 0.0.0.0:* LISTEN 17022/python3
Configura Nginx come proxy inverso per Odoo 13
Successivamente, dovrai installare e configurare Nginx come proxy inverso per l'istanza di Odoo 13.
Innanzitutto, installa il server web Nginx con il seguente comando:
dnf install nginx
Una volta installato, crea un nuovo file di configurazione dell'host virtuale con il seguente comando:
nano /etc/nginx/conf.d/odoo13.conf
Aggiungi le seguenti righe:
upstream odoo { server 127.0.0.1:8069; } server { listen 80; server_name example.com; access_log /var/log/nginx/odoo13.access.log; error_log /var/log/nginx/odoo13.error.log; location / { 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; proxy_redirect off; proxy_pass http://odoo; } location ~* /web/static/ { proxy_cache_valid 200 90m; proxy_buffering on; expires 864000; proxy_pass http://odoo; } gzip_types text/css text/less text/plain text/xml application/xml application/json application/javascript; gzip on; }
Salva e chiudi il file quando hai finito. Quindi, avvia il servizio Nginx e abilitalo all'avvio dopo il riavvio del sistema con il seguente comando:
systemctl start nginx
systemctl enable nginx
Puoi verificare lo stato del servizio Nginx utilizzando il seguente comando:
systemctl status nginx
Dovresti vedere il seguente output:
? nginx.service - The nginx HTTP and reverse proxy server Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled) Active: active (running) since Mon 2019-12-02 01:25:15 EST; 6s ago Process: 17244 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS) Process: 17241 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS) Process: 17239 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS) Main PID: 17245 (nginx) Tasks: 3 (limit: 12552) Memory: 5.4M CGroup: /system.slice/nginx.service ??17245 nginx: master process /usr/sbin/nginx ??17246 nginx: worker process ??17247 nginx: worker process Dec 02 01:25:15 centos8 systemd[1]: Starting The nginx HTTP and reverse proxy server... Dec 02 01:25:15 centos8 nginx[17241]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok Dec 02 01:25:15 centos8 nginx[17241]: nginx: configuration file /etc/nginx/nginx.conf test is successful Dec 02 01:25:15 centos8 systemd[1]: Started The nginx HTTP and reverse proxy server.
Configura Firewall
Successivamente, dovrai consentire al servizio Nginx tramite firewalld di accedere all'istanza Odoo 13 dal sistema remoto.
Puoi eseguire il comando seguente per consentire il servizio Nginx tramite firewalld:
firewall-cmd --permanent --zone=public --add-service=nginx
firewall-cmd --reload
Per impostazione predefinita, SELinux è abilitato in CentOS 8. Quindi dovrai consentire HTTP tramite SELinux. Puoi consentirlo con il seguente comando:
setsebool -P httpd_can_network_connect on
Accedi all'interfaccia web di Odoo 13
Ora Odoo 13 è installato e configurato. È ora di accedere all'interfaccia web di Odoo 13.
Apri il tuo browser web e digita l'URL http://example.com . Verrai reindirizzato alla seguente pagina:
Ora, fornisci la tua password principale, nome del database, e-mail, password, paese e fai clic su Crea database pulsante. Verrai reindirizzato alla pagina Amministrazione di Odoo 13:
Conclusione
Nel tutorial sopra, hai imparato come installare e configurare Odoo 13 sul server CentOS 8. Hai anche imparato a configurare Nginx come proxy inverso per Odoo 13. Ora puoi personalizzare la tua istanza Odoo 13 in base alle tue esigenze aziendali.