Difference between revisions of "Installazione Odoo avanzata"
(Created page with " È consigliata per installazioni in produzione più avanzate o per coloro che vogliono sviluppare o modificare moduli Odoo sulla propria macchina.<br> L'installazione prevede...") |
|||
(53 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
+ | [[Category:Odoo]] |
||
È consigliata per installazioni in produzione più avanzate o per coloro che vogliono sviluppare o modificare moduli Odoo sulla propria macchina.<br> |
È consigliata per installazioni in produzione più avanzate o per coloro che vogliono sviluppare o modificare moduli Odoo sulla propria macchina.<br> |
||
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. |
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 |
+ | 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 |
||
<small>(Consigliamo di leggere una volta tutte le istruzioni e poi procedere.)</small> |
<small>(Consigliamo di leggere una volta tutte le istruzioni e poi procedere.)</small> |
||
=== Requisiti === |
=== Requisiti === |
||
+ | * sistema aggiornato: <code>sudo apt update && apt upgrade</code> |
||
− | |||
* disponibilità programma '''Git''': per installarlo <code>sudo apt install git</code> |
* disponibilità programma '''Git''': per installarlo <code>sudo apt install git</code> |
||
* disponibilità programma '''VirtualEnv''': per installarlo <code>sudo apt install python3-venv</code> |
* disponibilità programma '''VirtualEnv''': per installarlo <code>sudo apt install python3-venv</code> |
||
− | * disponibilità programma '''PostgreSQL''': per installarlo <code>sudo apt install postgresql</code> |
+ | * disponibilità programma '''PostgreSQL''': per installarlo <code>sudo apt install postgresql -y</code> |
− | * disponibilità di alcuni tool e librerie |
+ | * disponibilità di alcuni tool e librerie che variano in funzione alla distribuzione utilizzata: |
+ | : '''Odoo 12.0''' |
||
− | :: <code> sudo apt install python3-pip python3-dev build-essential libxslt-dev libzip-dev libldap2-dev libsasl2-dev python3-setuptools</code> |
||
+ | :: ''Ubuntu 18.04 (PYthon 3.6)'' |
||
− | * opzionale: bash modificata per visualizzare nel prompt la versione VirtualEnv attivata |
||
+ | ::: <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> |
||
− | * opzionale: disponibilità programma '''PyCharm''' ([[#install_pycharm|vedi Installazione dell'ultima versione di Pycharm CE]]) |
||
+ | :: ''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> |
||
+ | : '''Odoo 14.0''' |
||
+ | :: ''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> |
||
+ | :: ''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> |
||
+ | : '''Odoo 16.0''' |
||
+ | :: ''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> |
||
+ | :: ''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> |
||
+ | |||
− | La struttura delle directory qui proposta per gestire l'installazione è la seguente: |
||
+ | |||
+ | La struttura delle directory qui proposta per gestire l'installazione multiversione è la seguente: |
||
/opt/odoo |
/opt/odoo |
||
|__ 12.0 |
|__ 12.0 |
||
− | |__ |
+ | |__ OCB |
− | |__ |
+ | |__ venv12 |
− | + | |__ addons |
|
− | + | |__OCA |
|
− | + | | |_ repo_oca_1 |
|
− | + | | |_ repo_oca_2 |
|
− | + | | |_ ... |
|
− | + | | |
|
− | + | |__ custom |
|
− | + | |_repo_custom_1 |
|
− | + | |_repo_custom_2 |
|
− | |__ 13.0 |
||
− | |__ odoo13-venv |
||
− | |__ addons/13.0 |
||
− | |__ 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. |
Può essere modificata allineando opportunamente le istruzioni di installazione. |
||
+ | '''N.B.''' <u>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'''.</u> |
||
=== Preparazione === |
=== Preparazione === |
||
Line 54: | Line 91: | ||
Creare l'utente odoo, con home in /opt/odoo |
Creare l'utente odoo, con home in /opt/odoo |
||
+ | sudo useradd -m -d /opt/odoo -U -r -s /bin/bash odoo |
||
− | <pre> |
||
− | sudo useradd -m -d /opt/odoo -U -r -s /bin/bash odoo |
||
− | </pre> |
||
− | Installare postgres |
||
− | |||
− | <pre> |
||
− | sudo apt-get install postgresql |
||
− | </pre> |
||
Creare l'utente odoo in postgres, che sarà il proprietario dei database 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" |
||
− | <pre> |
||
+ | |||
− | sudo su - postgres -c "createuser -s odoo" |
||
− | </pre> |
||
Passare all'utente odoo, spostandosi nella sua home |
Passare all'utente odoo, spostandosi nella sua home |
||
+ | sudo su - odoo |
||
− | <pre> |
||
− | sudo su - odoo |
||
− | </pre> |
||
+ | Creare le directory necessarie per la ''<VERSIONE>'' desiderata |
||
− | Clonare odoo in locale, selezionando il branch corretto |
||
+ | mkdir ''<VERSIONE>''.0 |
||
− | <pre> |
||
+ | mkdir ''<VERSIONE>''.0/addons |
||
− | git clone https://www.github.com/OCA/OCB --depth 1 --branch 12.0 --single-branch |
||
+ | mkdir ''<VERSIONE>''.0/addons/OCA |
||
− | </pre> |
||
+ | mkdir ''<VERSIONE>''.0/addons/custom |
||
+ | chmod 700 ''<VERSIONE>''.0/OCB |
||
+ | chmod 700 ''<VERSIONE>''.0/addons |
||
− | Creare l'ambiente virtualenv e attivarlo |
||
+ | Clonare odoo in locale, selezionando il branch corretto per la ''<VERSIONE>'' desiderata |
||
− | <pre> |
||
+ | |||
− | python3 -m venv odoo12-venv |
||
+ | cd ''<VERSIONE>''.0 |
||
− | . odoo12-venv/bin/activate |
||
+ | git clone https://github.com/OCA/OCB.git --branch ''<VERSIONE>''.0 --single-branch |
||
− | </pre> |
||
− | Installare da virtualenv i moduli necessari |
||
+ | Creare l'ambiente virtualenv e attivarlo |
||
− | <pre> |
||
− | pip3 install -r OCB/requirements.txt |
||
− | pip3 install pyxb==1.2.6 |
||
− | pip3 install codicefiscale |
||
− | pip3 install unidecode |
||
− | pip3 install phonenumbers |
||
− | </pre> |
||
+ | python3 -m venv venv''<VERSIONE>'' |
||
+ | . venv''<VERSIONE>''/bin/activate |
||
+ | Installare da virtualenv i moduli necessari |
||
+ | * Odoo 12.0 |
||
− | Predisporre una directory progetto (es. ~/odoo-dev11) e posizionarsi all’interno |
||
+ | pip install --upgrade pip |
||
− | <pre> |
||
+ | pip install wheel |
||
− | mkdir odoo-dev11 |
||
+ | pip3 install pypdf phonenumbers asn1crypto codicefiscale unidecode pysftp -r OCB/requirements.txt |
||
− | cd odoo-dev11 |
||
+ | pip3 install pyxb==1.2.6 |
||
− | </pre> |
||
+ | * Odoo 14.0 |
||
+ | pip3 install wheel |
||
− | Scaricare i file Odoo della versione 11 e salvarli nella directory OCB |
||
+ | 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 |
||
− | <pre> |
||
− | git clone https://github.com/OCA/OCB.git OCB --depth=1 --branch=11.0 --single-branch |
||
− | </pre> |
||
+ | 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 |
||
+ | ... |
||
− | ==== Odoo 12 ==== |
||
+ | Uscire da virtualenv e dall'utente odoo |
||
+ | deactivate |
||
− | Predisporre una directory progetto (es. ~/odoo-dev12) e posizionarsi all’interno |
||
+ | exit |
||
− | <pre> |
||
− | mkdir odoo-dev12 |
||
− | cd odoo-dev12 |
||
− | </pre> |
||
+ | creare il file di configurazione per l'istanza: |
||
+ | sudo mkdir /etc/odoo |
||
− | Scaricare i file Odoo della versione 12 e salvarli nella directory OCB |
||
+ | 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 |
||
− | <pre> |
||
− | git clone https://github.com/OCA/OCB.git OCB --depth=1 --branch=12.0 --single-branch |
||
− | </pre> |
||
+ | Creare l'ambiente per gestire i log |
||
+ | sudo su |
||
− | === Creazione ambiente virtuale === |
||
+ | 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 |
||
− | Generare l’ambiente virtuale con i file della versione Python desiderata creando una directory apposita (es. venv-3.6) |
||
+ | Creare il servizio systemd specifico per Odoo creando un file in /lib/systemd/system/odoo''<VERSIONE>''.service e aggiungendo il seguente contenuto |
||
− | <pre> |
||
− | virtualenv -p /usr/bin/python3.6 venv-3.6 |
||
− | </pre> |
||
+ | [Unit] |
||
− | Attivare l’ambiente virtuale VirtualEnv |
||
+ | 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 |
||
− | <pre> |
||
− | source venv-3.6/bin/activate |
||
− | </pre> |
||
+ | Caricare il servizio appena creato, abilitandolo all'avvio automatico |
||
− | Installare i pacchetti Python secondo le specifiche di Odoo |
||
+ | sudo systemctl daemon-reload |
||
− | <pre> |
||
+ | sudo systemctl enable odoo''<VERSIONE>''.service |
||
− | pip3 install -r OCB/requirements.txt |
||
+ | sudo systemctl start odoo''<VERSIONE>''.service |
||
− | </pre> |
||
− | Installare eventuali pacchetti Python aggiuntivi |
||
+ | Per analizzare il log del servizio systemd appena lanciato |
||
− | <pre> |
||
− | pip3 install paramiko |
||
− | pip3 install watchdog |
||
− | pip3 install odfpy |
||
− | pip3 install codicefiscale |
||
− | pip3 install psycogreen |
||
− | pip3 install pymssql |
||
− | pip3 install pyodbc (richiede la libreria unixodbc-dev) |
||
− | </pre> |
||
+ | journalctl -u odoo''<VERSIONE>'' |
||
− | Per disattivare l’ambiente VirtualEnv |
||
− | <pre> |
||
− | deactivate |
||
− | </pre> |
||
− | |||
− | Installare eventuali pacchetti apt per la stampa cups |
||
− | |||
− | <pre> |
||
− | sudo apt install cups |
||
− | sudo apt install python-cups |
||
− | sudo apt install libcups2-dev |
||
− | sudo apt install python3-dev |
||
− | </pre> |
||
− | |||
− | Installare eventuali pacchetti Python per la stampa cups |
||
− | |||
− | <pre> |
||
− | python3 -m pip install --upgrade pip |
||
− | python3 -m pip install pygments |
||
− | python3 -m pip install pycups |
||
− | python3 -m pip install zpl2 (opzionale) |
||
− | </pre> |
||
− | |||
− | === Configurazione di Pycharm con VirtualEnv === |
||
+ | === Report in PDF === |
||
− | Avviare PyCharm e aprire un ''Progetto'' (non ''Nuovo progetto'') puntando alla directory OCB nella ''directory_progetto''. |
||
+ | Per la creazione dei report in formato PDF, Odoo utilizza l'utility chiamata wkhtmlktopdf. |
||
− | Aggiungere l’interprete Python selezionando il menu |
||
+ | La versione attualmente consigliata è la 0.12.5-1. |
||
− | ''File → Settings → Project → Project Interpreter → Add : Existing Enviroment'' |
||
+ | <i>N.B: Consultare il [https://github.com/odoo/odoo/wiki/Wkhtmltopdf repository Odoo] per un elenco aggiornato delle versioni compatibili.</i> |
||
− | Selezionare il file <i>python</i> (link al file della versione installata) della ''directory_virtualenv/bin'' |
||
− | e impostare il programma da lanciare e la configurazione da utilizzare in |
||
+ | Per scaricare e installare l'utility eseguire i seguenti comandi da terminale: |
||
− | ''Run → Debug-Configuration'' |
||
+ | ==== Debian 10 - Buster / Debian 11 - Bullseye ==== |
||
− | Con <code>+</code> aggiungo una nuova configurazione di tipo Python impostando i parametri |
||
<pre> |
<pre> |
||
+ | # wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.5/wkhtmltox_0.12.5-1.buster_amd64.deb |
||
− | script => punta al file odoo-bin del progetto (es. ~/odoo-dev/odoo10/OCA/OCB/odoo-bin) |
||
+ | # sudo dpkg -i wkhtmltox_0.12.5-1.buster_amd64.deb |
||
− | script parameters => inserisco i parametri configurazione avvio Odoo |
||
+ | # cp -p /usr/local/bin/wkhtmlto* /usr/bin/ |
||
</pre> |
</pre> |
||
− | Tra i parametri di avvio ricordiamo <code>--dev=all</code> che ricarica automaticamente i file Python e le definizioni delle viste XML modificati senza richiedere il riavvio del server Odoo e l'aggiornamento del modulo. |
||
− | === |
+ | ==== Ubuntu 18.04 - Bionic Beaver ==== |
− | |||
− | Prima di avviare Odoo da PyCharm è necessario che l’utente di sistema (''nome_utente'') con cui si opera sia un utente Postgres.<br> |
||
− | Per aggiungere l’utente di sistema a Postgres: |
||
<pre> |
<pre> |
||
+ | $ wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.5/wkhtmltox_0.12.5-1.bionic_amd64.deb |
||
− | sudo su |
||
+ | $ sudo dpkg -i wkhtmltox_0.12.5-1.bionic_amd64.deb |
||
− | su postgres |
||
+ | $ sudo cp -p /usr/local/bin/wkhtmlto* /usr/bin/ |
||
− | createuser -s nome_utente |
||
</pre> |
</pre> |
||
+ | |||
− | Avviare '''psql''' e modificare i ruoli di ''nome_utente'' |
||
+ | ==== Ubuntu 20.04 - Focal Fossa / Ubuntu 22.04 - Jammy Jellyfish ==== |
||
<pre> |
<pre> |
||
+ | $ wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.5/wkhtmltox_0.12.5-1.focal_amd64.deb |
||
− | psql |
||
+ | $ sudo dpkg -i wkhtmltox_0.12.5-1.focal_amd64.deb |
||
− | psql=# alter role nome_utente with createdb; |
||
+ | $ sudo cp -p /usr/local/bin/wkhtmlto* /usr/bin/ |
||
− | psql=# alter role nome_utente with nocreaterole; |
||
− | psql=# alter role nome_utente with nosuperuser; |
||
</pre> |
</pre> |
||
− | === Nota con installazione di produzione === |
||
− | |||
− | Se è presente nella macchina una installazione di Odoo per produzione ([[#Installazione_standard_semplificata|vedi Installazione standard semplificata]]), prima di avviare PyCharm è necessario disabilitare il servizio Odoo con |
||
− | |||
− | <pre>systemctl disable odoo.service</pre> |
||
− | |||
− | oppure |
||
− | |||
− | <pre>service odoo stop</pre>. |
||
== Installazione IDE di sviluppo == |
== Installazione IDE di sviluppo == |
||
Line 257: | Line 268: | ||
== Risoluzione problemi == |
== Risoluzione problemi == |
||
− | Vedi l'apposita sezione: [https://wiki.pnlug.it/index.php |
+ | Vedi l'apposita sezione: [https://wiki.pnlug.it/index.php?title=Troubleshooting Troubleshooting] |
Latest revision as of 11:15, 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.)
Contents
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
- Ubuntu 18.04 (PYthon 3.6)
- 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
- Ubuntu 20.04 (Python 3.8)
- 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
- Ubuntu 20.04 (Python 3.8)
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 da virtualenv e dall'utente odoo
deactivate exit
creare il file di configurazione per l'istanza:
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>
Report in PDF
Per la creazione dei report in formato PDF, Odoo utilizza l'utility chiamata wkhtmlktopdf.
La versione attualmente consigliata è la 0.12.5-1.
N.B: Consultare il repository Odoo per un elenco aggiornato delle versioni compatibili.
Per scaricare e installare l'utility eseguire i seguenti comandi da terminale:
Debian 10 - Buster / Debian 11 - Bullseye
# wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.5/wkhtmltox_0.12.5-1.buster_amd64.deb # sudo dpkg -i wkhtmltox_0.12.5-1.buster_amd64.deb # cp -p /usr/local/bin/wkhtmlto* /usr/bin/
Ubuntu 18.04 - Bionic Beaver
$ wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.5/wkhtmltox_0.12.5-1.bionic_amd64.deb $ sudo dpkg -i wkhtmltox_0.12.5-1.bionic_amd64.deb $ sudo cp -p /usr/local/bin/wkhtmlto* /usr/bin/
Ubuntu 20.04 - Focal Fossa / Ubuntu 22.04 - Jammy Jellyfish
$ wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.5/wkhtmltox_0.12.5-1.focal_amd64.deb $ sudo dpkg -i wkhtmltox_0.12.5-1.focal_amd64.deb $ sudo cp -p /usr/local/bin/wkhtmlto* /usr/bin/
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