24 febbraio 2019

Installare odoo 12 e la fatturazione elettronica con pip

Su Ubuntu 18.04 LTS

Intro

In questa guida vedremo come installare odoo versione 12, direttamente con pip, su Ubuntu 18.04.

Vedremo anche come installare i moduli OCA, in particolare quelli di fatturazione elettronica, disponibili su PyPI grazie a setuptools-odoo.

PostgreSQL

Il DBMS utilizzato da odoo è PostgreSQL, quindi, come prima cosa, con utente root, lo installiamo.

apt-get install postgresql

Poi passiamo all'utente postgres

su postgres

e creiamo l'utente odoo sul DBMS

createuser --createdb --username postgres --no-createrole --no-superuser --pwprompt odoo

PostgreSQL è pronto.

L'utente odoo

Odoo verrà eseguito da un utente specifico, chiamato appunto odoo.

Utilizzando lo stesso nome dell'utente di postgreSQL, potremo accedere al DB utilizzando la modalità abilitata di default in postgreSQL: local.

Quindi, con utente root:

adduser odoo

In questo caso, se l'accesso SSH tramite password è abilitato, dovremo utilizzare una password forte.

Virtualenv

Sempre con utente root:

apt-get install python3-venv python3-pip libldap2-dev libsasl2-dev

Il pacchetto python3-venv ci permetterà di installare odoo in un virtual environment. In questo modo potremo isolare l'ambiente python dove eseguire odoo e potremo anche avere, sullo stesso sistema, diverse installazioni di odoo, anche di versioni diverse (ad esempio odoo 10 richiede python 2).

Mentre python3-pip installerà pip stesso.

libldap2-dev e libsasl2-dev contengono i file necessari a compilare python-ldap, modulo python utilizzato da odoo.


Passiamo quindi all'utente odoo

su odoo

e ci spostiamo nel percorso dove installeremo odoo, ad esempio nella home

cd ~

Qui creiamo il virtualenv

python3 -m venv odoo12

ci entriamo

cd odoo12

e lo attiviamo

source bin/activate

Odoo

Ora possiamo installare odoo core

pip install http://nightly.odoo.com/12.0/nightly/src/odoo_12.0.latest.tar.gz

Questo comando scarica e installa, da http://nightly.odoo.com/12.0/nightly/src/, l'ultima build di odoo rilasciata, installando automaticamente le sue dipendenze.

A questo punto odoo core è già funzionante; possiamo lanciarlo con

odoo

e visitare http://SERVER-IP:8069, ad esempio http://localhost:8069, per accedere e creare il primo database.

wkhtmltopdf

Per poter generare i report PDF, odoo necessita di wkhtmltopdf. La versione raccomandata è la 0.12.5, scaricabile eseguendo

wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.5/wkhtmltox_0.12.5-1.bionic_amd64.deb

Prima di installarlo, dobbiamo passare all'utente root ed installare le sue dipendenze

apt-get install xfonts-75dpi xfonts-base fontconfig libjpeg-turbo8 libxrender1

Infine installiamo wkhtmltopdf

dpkg -i wkhtmltox_0.12.5-1.bionic_amd64.deb

I moduli di fatturazione elettronica

Come anticipato, tutti i moduli OCA vengono nottetempo "compilati" e caricati su PyPI. I moduli OCA di fatturazione elettronica sono quindi anche loro installabili da PyPI con un semplice comando.

Prima di installarli però dobbiamo installare una loro dipendenza, ad una versione specifica: PyXB versione 1.2.5

Ritorniamo, con utente odoo, nella directory dove abbiamo installato odoo:

cd ~/odoo12/

riattiviamo, se necessario, il virtualenv

source bin/activate

A questo punto possiamo passare ad installare i moduli di fatturazione elettronica. Un modo semplice e veloce per farlo è installare direttamente il modulo per la trasmissione e ricezione via PEC tramite il sistema di interscambio.

Il modulo si chiama l10n_it_fatturapa_pec e dipende da tutti gli altri moduli atti a farlo funzionare, i quali verranno quindi installati automaticamente

pip install --pre odoo12-addon-l10n-it-fatturapa-pec

E' importante usare --pre perchè, in base alle dinamiche di revisione, rilascio e versionamento dei moduli OCA, i moduli che per pip sono pre-release, per OCA sono rilasci stabili.

Utilizzando il parametro --pre scarichiamo l'ultima versione disponibile, che potrebbe avere correzioni e nuove fuzionalità che altrimenti non installeremmo.

A questo punto possiamo nuovamente lanciare odoo

odoo

e, creando un nuovo database, o eseguendo "aggiorna lista moduli" nel database precedentemente creato, potremo installare il modulo l10n_it_fatturapa_pec e iniziare a inviare e ricevere fatture elettroniche.

Maggiori informazioni sul funzionamento dei moduli e la loro configurazione sono disponibili nel file README di ogni modulo.

Aggiornamenti

Per "congelare" la configurazione dell'installazione è possibile lanciare

pip freeze > requirements.txt

Il file requirements.txt conterrà tutti i pacchetti del nostro virtualenv, alla specifica versione installata.

Per aggiornare uno o più pacchetti, sarà quindi sufficiente modificare le versioni dei pacchetti in tale file e lanciare

pip install -U -r requirements.txt

E' anche possibile aggiornare automaticamente il file requirements.txt con strumenti come pip-upgrader.