Difference between revisions of "Installazione Odoo avanzata"

From PNLUG
Jump to navigation Jump to search
Line 18: Line 18:
 
* disponibilità di alcuni tool e librerie che variano in funzione alla distribuzione utilizzata:
 
* disponibilità di alcuni tool e librerie che variano in funzione alla distribuzione utilizzata:
 
: '''Odoo 12.0'''
 
: '''Odoo 12.0'''
:: ''Ubuntu 18.04''
+
:: ''Ubuntu 18.04 (PYthon 3.6)''
 
::: <code>sudo apt install xfonts-base xfonts-75dpi build-essential libc-dev libxslt-dev libzip-dev libldap2-dev libsasl2-dev python3-pip python3-setuptools python3-dev</code>
 
::: <code>sudo apt install xfonts-base xfonts-75dpi build-essential libc-dev libxslt-dev libzip-dev libldap2-dev libsasl2-dev python3-pip python3-setuptools python3-dev</code>
:: ''Debian 10''
+
:: ''Debian 10 (Python 3.7)''
 
::: <code>sudo apt install wget xfonts-base build-essential libffi-dev libpq-dev libxslt-dev libzip-dev libldap2-dev libsasl2-dev python3-pip python3-setuptools python3-dev</code>
 
::: <code>sudo apt install wget xfonts-base build-essential libffi-dev libpq-dev libxslt-dev libzip-dev libldap2-dev libsasl2-dev python3-pip python3-setuptools python3-dev</code>
 
: '''Odoo 14.0'''
 
: '''Odoo 14.0'''
:: ''Ubuntu 20.04''
+
:: ''Ubuntu 20.04 (Python 3.8)''
 
::: <code>sudo apt install xfonts-base xfonts-75dpi build-essential libc-dev libxslt-dev libzip-dev libldap2-dev libsasl2-dev libpq-dev python3-pip python3-setuptools python3-dev</code>
 
::: <code>sudo apt install xfonts-base xfonts-75dpi build-essential libc-dev libxslt-dev libzip-dev libldap2-dev libsasl2-dev libpq-dev python3-pip python3-setuptools python3-dev</code>
:: ''Debian 11''
+
:: ''Debian 11 (Python 3.9)''
 
::: <code>sudo apt install wget xfonts-base build-essential libffi-dev libpq-dev libxslt-dev libzip-dev libldap2-dev libsasl2-dev python3-pip python3-setuptools python3-dev</code>
 
::: <code>sudo apt install wget xfonts-base build-essential libffi-dev libpq-dev libxslt-dev libzip-dev libldap2-dev libsasl2-dev python3-pip python3-setuptools python3-dev</code>
 
: '''Odoo 16.0'''
 
: '''Odoo 16.0'''
:: ''Ubuntu 20.04''
+
:: ''Ubuntu 20.04 (Python 3.8)''
 
::: <code>sudo apt install xfonts-base xfonts-75dpi build-essential libc-dev libxslt-dev libzip-dev libldap2-dev libsasl2-dev libpq-dev python3-pip python3-setuptools python3-dev</code>
 
::: <code>sudo apt install xfonts-base xfonts-75dpi build-essential libc-dev libxslt-dev libzip-dev libldap2-dev libsasl2-dev libpq-dev python3-pip python3-setuptools python3-dev</code>
:: ''Ubuntu 22.04''
+
:: ''Ubuntu 22.04 (Python 3.10)''
 
::: <code>sudo apt install xfonts-base xfonts-75dpi build-essential libc-dev libxslt1-dev libzip-dev libldap2-dev libsasl2-dev libpq-dev python3-pip python3-setuptools python3-dev</code>
 
::: <code>sudo apt install xfonts-base xfonts-75dpi build-essential libc-dev libxslt1-dev libzip-dev libldap2-dev libsasl2-dev libpq-dev python3-pip python3-setuptools python3-dev</code>
   

Revision as of 09:29, 7 April 2023


È consigliata per installazioni in produzione più avanzate o per coloro che vogliono sviluppare o modificare moduli Odoo sulla propria macchina.
L'installazione prevede l'impiego del programma VirtualEnv che consente di installare/gestire versioni diverse di Python (richieste da specifiche versioni di Odoo) mantenendo inalterati i pacchetti di sistema.

Procedura prevista per:

  • Ubuntu 18.04 e Debian 10 - Odoo v12.0
  • Ubuntu 20.04 e Debian 11 - Odoo v14.0
  • Ubuntu 20.04 Odoo v16.0

(Consigliamo di leggere una volta tutte le istruzioni e poi procedere.)

Requisiti

  • sistema aggiornato: sudo apt update && apt upgrade
  • disponibilità programma Git: per installarlo sudo apt install git
  • disponibilità programma VirtualEnv: per installarlo sudo apt install python3-venv
  • disponibilità programma PostgreSQL: per installarlo sudo apt install postgresql -y
  • disponibilità di alcuni tool e librerie che variano in funzione alla distribuzione utilizzata:
Odoo 12.0
Ubuntu 18.04 (PYthon 3.6)
sudo apt install xfonts-base xfonts-75dpi build-essential libc-dev libxslt-dev libzip-dev libldap2-dev libsasl2-dev python3-pip python3-setuptools python3-dev
Debian 10 (Python 3.7)
sudo apt install wget xfonts-base build-essential libffi-dev libpq-dev libxslt-dev libzip-dev libldap2-dev libsasl2-dev python3-pip python3-setuptools python3-dev
Odoo 14.0
Ubuntu 20.04 (Python 3.8)
sudo apt install xfonts-base xfonts-75dpi build-essential libc-dev libxslt-dev libzip-dev libldap2-dev libsasl2-dev libpq-dev python3-pip python3-setuptools python3-dev
Debian 11 (Python 3.9)
sudo apt install wget xfonts-base build-essential libffi-dev libpq-dev libxslt-dev libzip-dev libldap2-dev libsasl2-dev python3-pip python3-setuptools python3-dev
Odoo 16.0
Ubuntu 20.04 (Python 3.8)
sudo apt install xfonts-base xfonts-75dpi build-essential libc-dev libxslt-dev libzip-dev libldap2-dev libsasl2-dev libpq-dev python3-pip python3-setuptools python3-dev
Ubuntu 22.04 (Python 3.10)
sudo apt install xfonts-base xfonts-75dpi build-essential libc-dev libxslt1-dev libzip-dev libldap2-dev libsasl2-dev libpq-dev python3-pip python3-setuptools python3-dev



La struttura delle directory qui proposta per gestire l'installazione multiversione è la seguente:

 /opt/odoo 
         |__ 12.0
                |__ OCB
                |__ venv12
                |__ addons
                         |__OCA
                         |    |_ repo_oca_1
                         |    |_ repo_oca_2
                         |    |_ ...
                         |
                         |__ custom
                                  |_repo_custom_1
                                  |_repo_custom_2
 /opt/odoo 
         |__ 14.0
                |__ OCB
                |__ venv14
                |__ addons
                         |__ OCA
                         |     |_ repo_oca_1
                         |     |_ repo_oca_2
                         |          |_ ...
                         |
                         |__ custom
                                  |_repo_custom_1
                                  |_repo_custom_2
                                  |_ ...
 /opt/odoo 
         |__ 16.0
                |__ OCB
                |__ venv16
                |__ addons
                         |__ OCA
                         |     |_ repo_oca_1
                         |     |_ repo_oca_2
                         |     |_ ...
                         |
                         |__ custom
                                  |_repo_custom_1
                                  |_repo_custom_2
                                  |_ ...
        

Può essere modificata allineando opportunamente le istruzioni di installazione.

N.B. Da qui in avanti, se non direttamente specificata, la release di Odoo verrà indicata utilizzando il segnaposto <VERSIONE>. Sostituirlo con il rilascio desiderato, 12, 14 oppure 16.

Preparazione

Creare l'utente odoo, con home in /opt/odoo

sudo useradd -m -d /opt/odoo -U -r -s /bin/bash odoo


Creare l'utente odoo in postgres, che sarà il proprietario dei database Odoo

sudo su - postgres -c "createuser --createdb --no-createrole --no-superuser odoo"


Passare all'utente odoo, spostandosi nella sua home

sudo su - odoo

Creare le directory necessarie per la <VERSIONE> desiderata

mkdir <VERSIONE>.0
mkdir <VERSIONE>.0/addons
mkdir <VERSIONE>.0/addons/OCA
mkdir <VERSIONE>.0/addons/custom
chmod 700 <VERSIONE>.0/OCB
chmod 700 <VERSIONE>.0/addons


Clonare odoo in locale, selezionando il branch corretto per la <VERSIONE> desiderata

cd <VERSIONE>.0
git clone https://github.com/OCA/OCB.git --branch <VERSIONE>.0 --single-branch


Creare l'ambiente virtualenv e attivarlo

python3 -m venv venv<VERSIONE>
. venv<VERSIONE>/bin/activate


Installare da virtualenv i moduli necessari

  • Odoo 12.0
pip install --upgrade pip
pip install wheel
pip3 install pypdf phonenumbers asn1crypto codicefiscale unidecode pysftp -r OCB/requirements.txt
pip3 install pyxb==1.2.6
  • Odoo 14.0
pip3 install wheel
pip3 install pypdf phonenumbers asn1crypto codicefiscale unidecode pysftp 
pip3 install -r OCB/requirements.txt
pip3 install pyPDF2 cryptography 
pip3 install -r addons14/OCA/repo_oca_1/requirements.txt
pip3 install -r addons14/OCA/repo_oca_2/requirements.txt
...
pip3 install -r addons14/OCA/repo_custom_1/requirements.txt
pip3 install -r addons14/OCA/repo_custom_2/requirements.txt
...
  • Odoo 16.0
pip3 install wheel
pip3 install -r OCB/requirements.txt
pip3 install -r addons16/OCA/repo_oca_1/requirements.txt
pip3 install -r addons16/OCA/repo_oca_2/requirements.txt
...
pip3 install -r addons16/OCA/repo_custom_1/requirements.txt
pip3 install -r addons16/OCA/repo_custom_2/requirements.txt
...

Uscire dall'utente odoo e creare il file di configurazione per l'istanza:

exit
sudo mkdir /etc/odoo
sudo cp /opt/odoo/<VERSIONE>.0/OCB/debian/odoo.conf /etc/odoo/odoo<VERSIONE>.conf
sudo chmod 640 /etc/odoo/odoo<VERSIONE>.conf
sudo chown odoo:odoo /etc/odoo/odoo<VERSIONE>.conf


Creare l'ambiente per gestire i log

sudo su
cd /var/log
mkdir odoo
chown root:odoo odoo && chmod 750 odoo
cd odoo
touch odoo<VERSIONE>-server.log
chown odoo:adm odoo<VERSIONE>-server.log && chmod 640 odoo<VERSIONE>-server.log
exit


Creare il servizio systemd specifico per Odoo creando un file in /lib/systemd/system/odoo<VERSIONE>.service e aggiungendo il seguente contenuto

[Unit]
Description=Odoo<VERSIONE>
Requires=postgresql.service
After=network.target postgresql.service

[Service]
Type=simple
SyslogIdentifier=odoo<VERSIONE>
PermissionsStartOnly=true
User=odoo
Group=odoo
ExecStart=/opt/odoo/<VERSIONE>.0/venv<VERSIONE>/bin/python3 /opt/odoo/<VERSIONE>.0/OCB/odoo-bin -c /etc/odoo/odoo<VERSIONE>.conf --logfile /var/log/odoo/odoo<VERSIONE>-server.log
StandardOutput=journal+console

[Install]
WantedBy=multi-user.target


Caricare il servizio appena creato, abilitandolo all'avvio automatico

sudo systemctl daemon-reload
sudo systemctl enable odoo<VERSIONE>.service
sudo systemctl start odoo<VERSIONE>.service


Per analizzare il log del servizio systemd appena lanciato

journalctl -u odoo<VERSIONE>


Installazione IDE di sviluppo

Per iniziare a sviluppare con Odoo è altamente consigliata l'installazione di una IDE di sviluppo.

Installazione Visual Studio Code

Seguire la seguente guida per l'installazione di VSCode

Installazione Pycharm Community Edition

Seguire la seguente guida per l'installazione di Pycharm CE

Risoluzione problemi

Vedi l'apposita sezione: Troubleshooting