Difference between revisions of "Installazione Odoo avanzata"
(→Preparazione) |
|||
Line 35: | Line 35: | ||
|__ venv13 |
|__ venv13 |
||
|__ addons13 |
|__ addons13 |
||
+ | | |__OCA |
||
+ | | | |_ repo_oca_1 |
||
+ | | | |_ repo_oca_2 |
||
+ | | | |_ ... |
||
+ | | | |
||
+ | | |__ custom |
||
+ | | |_repo_custom_1 |
||
+ | | |_repo_custom_2 |
||
+ | | |_ ... |
||
+ | |__ 14.0 |
||
+ | |__ venv14 |
||
+ | |__ addons14 |
||
|__ OCA |
|__ OCA |
||
| |_ repo_oca_1 |
| |_ repo_oca_1 |
||
Line 45: | Line 57: | ||
|_ ... |
|_ ... |
||
− | |||
Può essere modificata allineando opportunamente le istruzioni di installazione. |
Può essere modificata allineando opportunamente le istruzioni di installazione. |
||
Line 74: | Line 85: | ||
<pre> |
<pre> |
||
git clone https://www.github.com/OCA/OCB.git --depth 1 --branch 12.0 --single-branch 12.0 |
git clone https://www.github.com/OCA/OCB.git --depth 1 --branch 12.0 --single-branch 12.0 |
||
+ | </pre> |
||
+ | |||
+ | <pre> |
||
+ | git clone https://www.github.com/OCA/OCB.git --depth 1 --branch 13.0 --single-branch 13.0 |
||
+ | </pre> |
||
+ | |||
+ | <pre> |
||
+ | git clone https://www.github.com/OCA/OCB.git --depth 1 --branch 14.0 --single-branch 14.0 |
||
</pre> |
</pre> |
||
Line 87: | Line 106: | ||
</pre> |
</pre> |
||
+ | <pre> |
||
+ | mkdir addons13 |
||
+ | mkdir addons13/OCA |
||
+ | mkdir addons13/custom |
||
+ | |||
+ | chmod 700 addons13 |
||
+ | chmod 700 13.0 |
||
+ | </pre> |
||
+ | |||
+ | <pre> |
||
+ | mkdir addons14 |
||
+ | mkdir addons14/OCA |
||
+ | mkdir addons14/custom |
||
+ | |||
+ | chmod 700 addons14 |
||
+ | chmod 700 14.0 |
||
+ | </pre> |
||
Line 95: | Line 131: | ||
. venv12/bin/activate |
. venv12/bin/activate |
||
+ | </pre> |
||
+ | |||
+ | <pre> |
||
+ | python3 -m venv venv13 |
||
+ | |||
+ | . venv13/bin/activate |
||
+ | </pre> |
||
+ | |||
+ | <pre> |
||
+ | python3 -m venv venv14 |
||
+ | |||
+ | . venv14/bin/activate |
||
</pre> |
</pre> |
||
Line 107: | Line 155: | ||
</pre> |
</pre> |
||
+ | <pre> |
||
+ | pip3 install -r 13.0/requirements.txt |
||
+ | pip3 install pyxb==1.2.6 |
||
+ | pip3 install codicefiscale |
||
+ | pip3 install unidecode |
||
+ | pip3 install phonenumbers |
||
+ | </pre> |
||
+ | |||
+ | <pre> |
||
+ | pip3 install -r 14.0/requirements.txt |
||
+ | pip3 install pyxb==1.2.6 |
||
+ | pip3 install codicefiscale |
||
+ | pip3 install unidecode |
||
+ | pip3 install phonenumbers |
||
+ | </pre> |
||
Uscire dall'utente odoo e creare il file di configurazione per l'istanza: |
Uscire dall'utente odoo e creare il file di configurazione per l'istanza: |
||
Line 120: | Line 183: | ||
chown odoo:odoo /etc/odoo/odoo12.conf |
chown odoo:odoo /etc/odoo/odoo12.conf |
||
+ | </pre> |
||
+ | |||
+ | <pre> |
||
+ | exit |
||
+ | |||
+ | mkdir /etc/odoo |
||
+ | |||
+ | sudo cp /opt/odoo/13.0/debian/odoo.conf /etc/odoo/odoo13.conf |
||
+ | |||
+ | chmod 640 /etc/odoo/odoo13.conf |
||
+ | |||
+ | chown odoo:odoo /etc/odoo/odoo13.conf |
||
+ | </pre> |
||
+ | |||
+ | <pre> |
||
+ | exit |
||
+ | |||
+ | mkdir /etc/odoo |
||
+ | |||
+ | sudo cp /opt/odoo/14.0/debian/odoo.conf /etc/odoo/odoo14.conf |
||
+ | |||
+ | chmod 640 /etc/odoo/odoo14.conf |
||
+ | |||
+ | chown odoo:odoo /etc/odoo/odoo14.conf |
||
</pre> |
</pre> |
||
Line 138: | Line 225: | ||
</pre> |
</pre> |
||
+ | <pre> |
||
+ | cd /var/log |
||
+ | |||
+ | mkdir odoo |
||
+ | |||
+ | chown root:odoo odoo && chmod 750 odoo |
||
+ | |||
+ | cd odoo |
||
+ | |||
+ | touch odoo13-server.log |
||
+ | |||
+ | chown odoo:adm odoo13-server.log && chmod 640 odoo13-server.log |
||
+ | </pre> |
||
+ | |||
+ | <pre> |
||
+ | cd /var/log |
||
+ | |||
+ | mkdir odoo |
||
+ | |||
+ | chown root:odoo odoo && chmod 750 odoo |
||
+ | |||
+ | cd odoo |
||
+ | |||
+ | touch odoo14-server.log |
||
+ | |||
+ | chown odoo:adm odoo14-server.log && chmod 640 odoo14-server.log |
||
+ | </pre> |
||
Creare il servizio systemd specifico per Odoo creando un file in /lib/systemd/system/odoo12.service e aggiungendo il seguente contenuto |
Creare il servizio systemd specifico per Odoo creando un file in /lib/systemd/system/odoo12.service e aggiungendo il seguente contenuto |
||
Line 154: | Line 268: | ||
Group=odoo |
Group=odoo |
||
ExecStart=/opt/odoo/venv12/bin/python3 /opt/odoo/12.0/odoo-bin -c /etc/odoo/odoo12.conf --logfile /var/log/odoo/odoo12-server.log |
ExecStart=/opt/odoo/venv12/bin/python3 /opt/odoo/12.0/odoo-bin -c /etc/odoo/odoo12.conf --logfile /var/log/odoo/odoo12-server.log |
||
+ | StandardOutput=journal+console |
||
+ | |||
+ | [Install] |
||
+ | WantedBy=multi-user.target |
||
+ | </pre> |
||
+ | |||
+ | <pre> |
||
+ | [Unit] |
||
+ | Description=Odoo13 |
||
+ | Requires=postgresql.service |
||
+ | After=network.target postgresql.service |
||
+ | |||
+ | [Service] |
||
+ | Type=simple |
||
+ | SyslogIdentifier=odoo13 |
||
+ | PermissionsStartOnly=true |
||
+ | User=odoo |
||
+ | Group=odoo |
||
+ | ExecStart=/opt/odoo/venv13/bin/python3 /opt/odoo/13.0/odoo-bin -c /etc/odoo/odoo12.conf --logfile /var/log/odoo/odoo13-server.log |
||
+ | StandardOutput=journal+console |
||
+ | |||
+ | [Install] |
||
+ | WantedBy=multi-user.target |
||
+ | </pre> |
||
+ | |||
+ | <pre> |
||
+ | [Unit] |
||
+ | Description=Odoo14 |
||
+ | Requires=postgresql.service |
||
+ | After=network.target postgresql.service |
||
+ | |||
+ | [Service] |
||
+ | Type=simple |
||
+ | SyslogIdentifier=odoo14 |
||
+ | PermissionsStartOnly=true |
||
+ | User=odoo |
||
+ | Group=odoo |
||
+ | ExecStart=/opt/odoo/venv14/bin/python3 /opt/odoo/14.0/odoo-bin -c /etc/odoo/odoo14.conf --logfile /var/log/odoo/odoo14-server.log |
||
StandardOutput=journal+console |
StandardOutput=journal+console |
||
Line 168: | Line 320: | ||
sudo systemctl start odoo12.service |
sudo systemctl start odoo12.service |
||
+ | </pre> |
||
+ | |||
+ | <pre> |
||
+ | sudo systemctl daemon-reload |
||
+ | |||
+ | sudo systemctl enable odoo13.service |
||
+ | |||
+ | sudo systemctl start odoo13.service |
||
+ | </pre> |
||
+ | |||
+ | <pre> |
||
+ | sudo systemctl daemon-reload |
||
+ | |||
+ | sudo systemctl enable odoo14.service |
||
+ | |||
+ | sudo systemctl start odoo14.service |
||
</pre> |
</pre> |
||
Line 174: | Line 342: | ||
<pre> |
<pre> |
||
journalctl -u odoo12 |
journalctl -u odoo12 |
||
+ | </pre> |
||
+ | |||
+ | <pre> |
||
+ | journalctl -u odoo13 |
||
+ | </pre> |
||
+ | |||
+ | <pre> |
||
+ | journalctl -u odoo14 |
||
</pre> |
</pre> |
||
Revision as of 18:20, 10 April 2022
È 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 testata su Ubuntu 16.04 e Debian 9.3.0.
(Consigliamo di leggere una volta tutte le istruzioni e poi procedere.)
Contents
Requisiti
- 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
- disponibilità di alcuni tool e librerie: per installarli
sudo apt install python3-pip python3-dev build-essential libxslt-dev libzip-dev libldap2-dev libsasl2-dev python3-setuptools
- opzionale: bash modificata per visualizzare nel prompt la versione VirtualEnv attivata
- opzionale: disponibilità programma PyCharm (vedi Installazione dell'ultima versione di Pycharm CE)
La struttura delle directory qui proposta per gestire l'installazione è la seguente:
/opt/odoo |__ 12.0 |__ venv12 |__ addons12 | |__OCA | | |_ repo_oca_1 | | |_ repo_oca_2 | | |_ ... | | | |__ custom | |_repo_custom_1 | |_repo_custom_2 | |_ ... |__ 13.0 |__ venv13 |__ addons13 | |__OCA | | |_ repo_oca_1 | | |_ repo_oca_2 | | |_ ... | | | |__ custom | |_repo_custom_1 | |_repo_custom_2 | |_ ... |__ 14.0 |__ venv14 |__ addons14 |__ OCA | |_ repo_oca_1 | |_ repo_oca_2 | |_ ... | |__ custom |_repo_custom_1 |_repo_custom_2 |_ ...
Può essere modificata allineando opportunamente le istruzioni di installazione.
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 -s odoo"
Passare all'utente odoo, spostandosi nella sua home
sudo su - odoo
Clonare odoo in locale, selezionando il branch corretto
git clone https://www.github.com/OCA/OCB.git --depth 1 --branch 12.0 --single-branch 12.0
git clone https://www.github.com/OCA/OCB.git --depth 1 --branch 13.0 --single-branch 13.0
git clone https://www.github.com/OCA/OCB.git --depth 1 --branch 14.0 --single-branch 14.0
Creare le directory necessarie
mkdir addons12 mkdir addons12/OCA mkdir addons12/custom chmod 700 addons12 chmod 700 12.0
mkdir addons13 mkdir addons13/OCA mkdir addons13/custom chmod 700 addons13 chmod 700 13.0
mkdir addons14 mkdir addons14/OCA mkdir addons14/custom chmod 700 addons14 chmod 700 14.0
Creare l'ambiente virtualenv e attivarlo
python3 -m venv venv12 . venv12/bin/activate
python3 -m venv venv13 . venv13/bin/activate
python3 -m venv venv14 . venv14/bin/activate
Installare da virtualenv i moduli necessari
pip3 install -r 12.0/requirements.txt pip3 install pyxb==1.2.6 pip3 install codicefiscale pip3 install unidecode pip3 install phonenumbers
pip3 install -r 13.0/requirements.txt pip3 install pyxb==1.2.6 pip3 install codicefiscale pip3 install unidecode pip3 install phonenumbers
pip3 install -r 14.0/requirements.txt pip3 install pyxb==1.2.6 pip3 install codicefiscale pip3 install unidecode pip3 install phonenumbers
Uscire dall'utente odoo e creare il file di configurazione per l'istanza:
exit mkdir /etc/odoo sudo cp /opt/odoo/12.0/debian/odoo.conf /etc/odoo/odoo12.conf chmod 640 /etc/odoo/odoo12.conf chown odoo:odoo /etc/odoo/odoo12.conf
exit mkdir /etc/odoo sudo cp /opt/odoo/13.0/debian/odoo.conf /etc/odoo/odoo13.conf chmod 640 /etc/odoo/odoo13.conf chown odoo:odoo /etc/odoo/odoo13.conf
exit mkdir /etc/odoo sudo cp /opt/odoo/14.0/debian/odoo.conf /etc/odoo/odoo14.conf chmod 640 /etc/odoo/odoo14.conf chown odoo:odoo /etc/odoo/odoo14.conf
Creare l'ambiente per gestire i log
cd /var/log mkdir odoo chown root:odoo odoo && chmod 750 odoo cd odoo touch odoo12-server.log chown odoo:adm odoo12-server.log && chmod 640 odoo12-server.log
cd /var/log mkdir odoo chown root:odoo odoo && chmod 750 odoo cd odoo touch odoo13-server.log chown odoo:adm odoo13-server.log && chmod 640 odoo13-server.log
cd /var/log mkdir odoo chown root:odoo odoo && chmod 750 odoo cd odoo touch odoo14-server.log chown odoo:adm odoo14-server.log && chmod 640 odoo14-server.log
Creare il servizio systemd specifico per Odoo creando un file in /lib/systemd/system/odoo12.service e aggiungendo il seguente contenuto
[Unit] Description=Odoo12 Requires=postgresql.service After=network.target postgresql.service [Service] Type=simple SyslogIdentifier=odoo12 PermissionsStartOnly=true User=odoo Group=odoo ExecStart=/opt/odoo/venv12/bin/python3 /opt/odoo/12.0/odoo-bin -c /etc/odoo/odoo12.conf --logfile /var/log/odoo/odoo12-server.log StandardOutput=journal+console [Install] WantedBy=multi-user.target
[Unit] Description=Odoo13 Requires=postgresql.service After=network.target postgresql.service [Service] Type=simple SyslogIdentifier=odoo13 PermissionsStartOnly=true User=odoo Group=odoo ExecStart=/opt/odoo/venv13/bin/python3 /opt/odoo/13.0/odoo-bin -c /etc/odoo/odoo12.conf --logfile /var/log/odoo/odoo13-server.log StandardOutput=journal+console [Install] WantedBy=multi-user.target
[Unit] Description=Odoo14 Requires=postgresql.service After=network.target postgresql.service [Service] Type=simple SyslogIdentifier=odoo14 PermissionsStartOnly=true User=odoo Group=odoo ExecStart=/opt/odoo/venv14/bin/python3 /opt/odoo/14.0/odoo-bin -c /etc/odoo/odoo14.conf --logfile /var/log/odoo/odoo14-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 odoo12.service sudo systemctl start odoo12.service
sudo systemctl daemon-reload sudo systemctl enable odoo13.service sudo systemctl start odoo13.service
sudo systemctl daemon-reload sudo systemctl enable odoo14.service sudo systemctl start odoo14.service
Per analizzare il log del servizio systemd appena lanciato
journalctl -u odoo12
journalctl -u odoo13
journalctl -u odoo14
Configurazione di Pycharm con VirtualEnv
Avviare PyCharm e aprire un Progetto (non Nuovo progetto) puntando alla directory OCB nella directory_progetto.
Aggiungere l’interprete Python selezionando il menu
File → Settings → Project → Project Interpreter → Add : Existing Enviroment
Selezionare il file python (link al file della versione installata) della directory_virtualenv/bin e impostare il programma da lanciare e la configurazione da utilizzare in
Run → Debug-Configuration
Con +
aggiungo una nuova configurazione di tipo Python impostando i parametri
script => punta al file odoo-bin del progetto (es. ~/odoo-dev/odoo10/OCA/OCB/odoo-bin) script parameters => inserisco i parametri configurazione avvio Odoo
Tra i parametri di avvio ricordiamo --dev=all
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.
Aggiungere l'utente di sistema a Postgres
Prima di avviare Odoo da PyCharm è necessario che l’utente di sistema (nome_utente) con cui si opera sia un utente Postgres.
Per aggiungere l’utente di sistema a Postgres:
sudo su su postgres createuser -s nome_utente
Avviare psql e modificare i ruoli di nome_utente
psql psql=# alter role nome_utente with createdb; psql=# alter role nome_utente with nocreaterole; psql=# alter role nome_utente with nosuperuser;
Nota con installazione di produzione
Se è presente nella macchina una installazione di Odoo per produzione (vedi Installazione standard semplificata), prima di avviare PyCharm è necessario disabilitare il servizio Odoo con
systemctl disable odoo.service
oppure
service odoo stop
.
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