GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak nainstalovat Odoo 14 na Ubuntu 20.04

Odoo je populární open-source sada obchodních aplikací, které pomáhají společnostem řídit a provozovat jejich podnikání. Zahrnuje širokou škálu aplikací, jako je CRM, e-Commerce, tvorba webových stránek, fakturace, účetnictví, výroba, sklad, řízení projektů, inventarizace a mnoho dalších, vše hladce integrované.

Odoo lze instalovat různými způsoby v závislosti na případu použití a dostupných technologiích. Nejjednodušší a nejrychlejší způsob instalace Odoo je pomocí oficiálních Odoo APTrepositories.

Instalace Odoo ve virtuálním prostředí nebo nasazení jako Dockercontainer vám poskytne větší kontrolu nad aplikací a umožní vám spouštět více instancí Odoo na stejném systému.

Tento článek vysvětluje, jak nainstalovat a nasadit Odoo 14 ve virtuálním prostředí Pythonu na Ubuntu 20.04. Stáhneme si Odoo z oficiálního úložiště GitHub a použijeme Nginx jako reverzní proxy.

Předpoklady instalace #

Následující příkaz nainstaluje Git, Pip, Node.js a [nástroje potřebné k sestavení](https://linuxize.com/post/how-to-install-gcc-on-ubuntu-20-04/ Závislosti Odoo:

sudo apt updatesudo apt install git python3-pip build-essential wget python3-dev python3-venv \    python3-wheel libfreetype6-dev libxml2-dev libzip-dev libldap2-dev libsasl2-dev \    python3-setuptools node-less libjpeg-dev zlib1g-dev libpq-dev \    libxslt1-dev libldap2-dev libtiff5-dev libjpeg8-dev libopenjp2-7-dev \    liblcms2-dev libwebp-dev libharfbuzz-dev libfribidi-dev libxcb1-dev

Vytvoření systémového uživatele #

Spouštění Odoo pod uživatelem root není povoleno, protože se jedná o bezpečnostní riziko. Vytvoříme nový systémový uživatel a skupinu s domovským adresářem /opt/odoo14 který bude provozovat službu Odoo. Chcete-li tak učinit, zadejte následující příkaz:

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

Uživatele můžete pojmenovat jakkoli chcete, pokud vytvoříte uživatele PostgreSQL se stejným jménem.

Instalace a konfigurace PostgreSQL #

Odoo používá PostgreSQL jako back-end databáze. PostgreSQL je součástí standardních repozitářů Ubuntu. Chcete-li jej nainstalovat, spusťte:

sudo apt install postgresql

Po dokončení instalace vytvořte uživatele PostgreSQL se stejným jménem jako dříve vytvořený systémový uživatel. V tomto příkladu je to odoo14 :

sudo su - postgres -c "createuser -s odoo14"

Instalace wkhtmltopdf #

wkhtmltopdf je sada nástrojů příkazového řádku s otevřeným zdrojovým kódem pro vykreslování stránek HTML do formátu PDF a různých obrazových formátů. Chcete-li tisknout zprávy ve formátu PDF v Odoo, budete si muset nainstalovat wkhtmltox balík. Doporučená verze pro Odoo je verze 0.12.5 , který lze stáhnout z Github:

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

Jakmile je soubor stažen, nainstalujte jej zadáním:

sudo apt install ./wkhtmltox_0.12.5-1.bionic_amd64.deb

Instalace a konfigurace Odoo 14 #

Odoo nainstalujeme ze zdroje v izolovaném virtuálním prostředí Pythonu.

Nejprve se změňte na uživatele „odoo14“:

sudo su - odoo14

Klonujte zdrojový kód Odoo 14 z GitHubu:

git clone https://www.github.com/odoo/odoo --depth 1 --branch 14.0 /opt/odoo14/odoo

Vytvořte nové virtuální prostředí Pythonu pro Odoo:

cd /opt/odoo14python3 -m venv odoo-venv

Aktivace virtuálního prostředí:

source odoo-venv/bin/activate

Nainstalujte všechny požadované moduly Pythonu pomocí pip3:

pip3 install wheelpip3 install -r odoo/requirements.txt
Pokud během instalace narazíte na nějakou chybu kompilace, ujistěte se, že všechny požadované závislosti jsou uvedeny v Installing Prerequisites sekce jsou nainstalovány.

Po dokončení deaktivujte prostředí zadáním:

deactivate

Vytvořte nový adresář, který bude obsahovat doplňky třetích stran:

mkdir /opt/odoo14/odoo-custom-addons

Tento adresář přidáme do addons_path parametr. Tento parametr definuje seznam adresářů, kde Odoo hledá moduly.

Přepněte zpět na uživatele sudo:

exit

Vytvořte konfigurační soubor s následujícím obsahem:

sudo nano /etc/odoo14.conf
/etc/odoo14.conf
[options]
; This is the password that allows database operations:
admin_passwd = my_admin_passwd
db_host = False
db_port = False
db_user = odoo14
db_password = False
addons_path = /opt/odoo14/odoo/addons,/opt/odoo14/odoo-custom-addons
Nezapomeňte změnit my_admin_passwd na něco bezpečnějšího.

Vytváření souboru systémové jednotky #

Otevřete textový editor a vytvořte soubor servisní jednotky s názvem odoo14.service s následujícím obsahem:

sudo nano /etc/systemd/system/odoo14.service
/etc/systemd/system/odoo14.service
[Unit]
Description=Odoo14
Requires=postgresql.service
After=network.target postgresql.service

[Service]
Type=simple
SyslogIdentifier=odoo14
PermissionsStartOnly=true
User=odoo14
Group=odoo14
ExecStart=/opt/odoo14/odoo-venv/bin/python3 /opt/odoo14/odoo/odoo-bin -c /etc/odoo14.conf
StandardOutput=journal+console

[Install]
WantedBy=multi-user.target

Informujte systemd, že existuje nový soubor jednotky:

sudo systemctl daemon-reload

Spusťte službu Odoo a povolte její spuštění při spuštění spuštěním:

sudo systemctl enable --now odoo14

Ověřte stav služby:

sudo systemctl status odoo14

Výstup by měl vypadat nějak jako níže, což ukazuje, že služba Odoo je aktivní a běží:

● odoo14.service - Odoo14
     Loaded: loaded (/etc/systemd/system/odoo14.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2020-10-16 19:05:32 UTC; 3s ago
...

Chcete-li zobrazit zprávy zaznamenané službou Odoo, použijte příkaz níže:

sudo journalctl -u odoo14

Testování instalace #

Otevřete prohlížeč a zadejte:http://<your_domain_or_IP_address>:8069

Za předpokladu, že instalace proběhla úspěšně, objeví se obrazovka podobná následující:

Konfigurace Nginx jako proxy pro ukončení SSL #

Výchozí webový server Odoo obsluhuje provoz přes HTTP. Aby bylo nasazení Odoo bezpečnější, nastavíme Nginx jako ukončovací proxy SSL, který bude obsluhovat provoz přes HTTPS.

Proxy pro ukončení SSL je proxy server, který zpracovává šifrování/dešifrování SSL. To znamená, že ukončovací proxy (Nginx) zpracuje a dešifruje příchozí připojení TLS (HTTPS) a předá nešifrované požadavky interní službě (Odoo). Provoz mezi Nginx a Odoo nebude šifrován (HTTP).

Použití reverzního proxy vám poskytuje mnoho výhod, jako je vyrovnávání zátěže, ukončení SSL, ukládání do mezipaměti, komprese, poskytování statického obsahu a další.

Než budete pokračovat v této části, ujistěte se, že jste splnili následující předpoklady:

  • Název domény odkazující na IP vašeho veřejného serveru. Použijeme example.com .
  • Nginx nainstalován.
  • Certifikát SSL pro vaši doménu. Můžete si nainstalovat bezplatný certifikát Let’s Encrypt SSL.

Otevřete textový editor a vytvořte/upravte blok doménového serveru:

sudo nano /etc/nginx/sites-enabled/example.com.conf

Následující konfigurace nastavuje ukončení SSL, přesměrování HTTP na HTTPS, přesměrování z WWW na jiné než WWW, mezipaměť statických souborů a povolení komprese GZip.

/etc/nginx/sites-enabled/example.com.conf
# Odoo servers
upstream odoo {
 server 127.0.0.1:8069;
}

upstream odoochat {
 server 127.0.0.1:8072;
}

# HTTP -> HTTPS
server {
    listen 80;
    server_name www.example.com example.com;

    include snippets/letsencrypt.conf;
    return 301 https://example.com$request_uri;
}

# WWW -> NON WWW
server {
    listen 443 ssl http2;
    server_name www.example.com;

    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
    include snippets/ssl.conf;
    include snippets/letsencrypt.conf;

    return 301 https://example.com$request_uri;
}

server {
    listen 443 ssl http2;
    server_name example.com;

    proxy_read_timeout 720s;
    proxy_connect_timeout 720s;
    proxy_send_timeout 720s;

    # Proxy headers
    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;

    # SSL parameters
    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
    include snippets/ssl.conf;
    include snippets/letsencrypt.conf;

    # log files
    access_log /var/log/nginx/odoo.access.log;
    error_log /var/log/nginx/odoo.error.log;

    # Handle longpoll requests
    location /longpolling {
        proxy_pass http://odoochat;
    }

    # Handle / requests
    location / {
       proxy_redirect off;
       proxy_pass http://odoo;
    }

    # Cache static files
    location ~* /web/static/ {
        proxy_cache_valid 200 90m;
        proxy_buffering on;
        expires 864000;
        proxy_pass http://odoo;
    }

    # Gzip
    gzip_types text/css text/less text/plain text/xml application/xml application/json application/javascript;
    gzip on;
}
Nezapomeňte nahradit example.com svou doménou Odoo a nastavit správnou cestu k souborům certifikátu SSL. Fragmenty použité v této konfiguraci jsou vytvořeny v této příručce.

Až budete hotovi, restartujte službu Nginx:

sudo systemctl restart nginx

Dále musíme říci Odoo, aby používal proxy. Chcete-li tak učinit, otevřete konfigurační soubor a přidejte následující řádek:

/etc/odoo14.conf
proxy_mode = True

Restartujte službu Odoo, aby se změny projevily:

sudo systemctl restart odoo14

V tomto okamžiku je nakonfigurován reverzní proxy a ke své instanci Odoo můžete přistupovat na https://example.com .

Změna rozhraní vazby #

Tento krok je volitelný, ale je to dobrý bezpečnostní postup.

Ve výchozím nastavení server Odoo naslouchá portu 8069 na všech rozhraních. Chcete-li zakázat přímý přístup k instanci Odoo, můžete buď zablokovat port 8069 pro všechna veřejná rozhraní nebo přinutit Odoo, aby naslouchal pouze na místním rozhraní.

Nakonfigurujeme Odoo tak, aby naslouchalo pouze na 127.0.0.1 . Otevřete konfiguraci a na konec souboru přidejte následující dva řádky:

/etc/odoo14.conf
xmlrpc_interface = 127.0.0.1
netrpc_interface = 127.0.0.1

Uložte konfigurační soubor a restartujte server Odoo, aby se změny projevily:

sudo systemctl restart odoo14

Povolení vícenásobného zpracování #

Ve výchozím nastavení Odoo pracuje v režimu více vláken. Pro produkční nasazení se doporučuje přejít na multiprocessingový server, protože zvyšuje stabilitu a lépe využívá systémové prostředky.

Chcete-li povolit multiprocesing, musíte upravit konfiguraci Odoo a nastavit nenulový počet pracovních procesů. Počet pracovníků se vypočítá na základě počtu jader CPU v systému a dostupné paměti RAM.

Podle oficiální dokumentace Odoo můžete pro výpočet počtu pracovníků a požadované velikosti paměti RAM použít následující vzorce a předpoklady:

Výpočet počtu pracovníků

  • Teoretický maximální počet pracovníků =(system_cpus * 2) + 1
  • 1 pracovník může obsluhovat ~=6 souběžných uživatelů
  • Zaměstnanci Cron také vyžadují CPU

Výpočet velikosti paměti RAM

  • Budeme uvažovat, že 20 % všech požadavků jsou těžké požadavky a 80 % jsou lehčí. Velké požadavky využívají přibližně 1 GB paměti RAM, zatímco ty lehčí využívají přibližně 150 MB RAM
  • Potřebná RAM =number_of_workers * ( (light_worker_ratio * light_worker_ram_estimation) + (heavy_worker_ratio * heavy_worker_ram_estimation) )

Pokud nevíte, kolik CPU máte ve svém systému, použijte následující grep příkaz:

grep -c ^processor /proc/cpuinfo

Řekněme, že máte systém se 4 jádry CPU, 8 GB paměti RAM a 30 souběžnými uživateli Odoo.

  • 30 users / 6 = **5** (5 je teoretický počet potřebných pracovníků)
  • (4 * 2) + 1 = **9** ( 9 je teoretický maximální počet pracovníků)

Na základě výše uvedeného výpočtu můžete použít 5 pracovníků + 1 ​​pracovníka pro cron workera, což je celkem 6 pracovníků.

Vypočítejte spotřebu paměti RAM na základě počtu pracovníků:

  • RAM = 6 * ((0.8*150) + (0.2*1024)) ~= 2 GB of RAM

Výpočet ukazuje, že instalace Odoo bude potřebovat přibližně 2 GB RAM.

Chcete-li přepnout do režimu multiprocessingu, otevřete konfigurační soubor a připojte vypočítané hodnoty:

/etc/odoo14.conf
limit_memory_hard = 2684354560
limit_memory_soft = 2147483648
limit_request = 8192
limit_time_cpu = 600
limit_time_real = 1200
max_cron_threads = 1
workers = 5

Restartujte službu Odoo, aby se změny projevily:

sudo systemctl restart odoo14

Zbytek systémových prostředků využijí jiné služby, které na tomto systému běží. V této příručce jsme nainstalovali Odoo spolu s PostgreSQL a Nginx na stejný server. V závislosti na vašem nastavení mohou na vašem serveru běžet i další služby.


Ubuntu
  1. Jak nainstalovat Odoo 12 na Ubuntu 16.04

  2. Jak nainstalovat Odoo 13 na Ubuntu 18.04

  3. Jak nainstalovat Odoo 13 na Ubuntu 20.04

  1. Jak nainstalovat Odoo 10 na Ubuntu 16.04

  2. Jak nainstalovat Odoo 15 na Ubuntu 22.04

  3. Jak nainstalovat Odoo 13 na Ubuntu 20.04

  1. Jak nainstalovat Odoo na Ubuntu

  2. Jak nainstalovat Odoo 15 na Ubuntu 20.04

  3. Jak nainstalovat Odoo 11 na Ubuntu 16.04