GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak nasadit Odoo 12 na Ubuntu 18.04

Odoo je nejpopulárnější all-in-one podnikový software na světě. Nabízí řadu podnikových aplikací včetně CRM, webových stránek, e-commerce, fakturace, účetnictví, výroby, skladu, projektového managementu, zásob a mnoha dalších, to vše je hladce integrované.

Odoo lze nainstalovat několika různými způsoby. Nejjednodušší a nejrychlejší způsob instalace Odoo je pomocí jejich oficiálních repozitářů APT.

Pokud chcete mít větší flexibilitu, jako je spouštění více verzí Odoo na stejném systému, můžete buď použít docker a docker composese nebo nainstalovat Odoo ve virtuálním prostředí.

Tento tutoriál popisuje kroky potřebné pro instalaci a konfiguraci Odoo 12 pro produkci pomocí zdroje Git a virtuálního prostředí Python na systému Ubuntu 18.04.

Než začnete #

Přihlaste se ke svému počítači Ubuntu jako uživatel sudo a aktualizujte systém na nejnovější balíčky:

sudo apt update && sudo apt upgrade

Nainstalujte Git, Pip, Node.js a nástroje potřebné k vytvoření závislostí Odoo:

sudo apt install git python3-pip build-essential wget python3-dev python3-venv python3-wheel libxslt-dev libzip-dev libldap2-dev libsasl2-dev python3-setuptools node-less

Vytvořit uživatele Odoo #

Vytvořte nového systémového uživatele pro Odoo s názvem odoo12 s domovským adresářem /opt/odoo12 pomocí následujícího příkazu:

sudo useradd -m -d /opt/odoo12 -U -r -s /bin/bash odoo12
Pro uživatele Odoo můžete použít jakékoli jméno, pokud vytvoříte uživatele PostgreSQL se stejným jménem.

Instalace a konfigurace PostgreSQL #

Nainstalujte balíček PostgreSQL z výchozích úložišť Ubuntu:

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 našem případě to je odoo12 :

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

Instalovat Wkhtmltopdf #

wkhtmltox balíček poskytuje sadu nástrojů příkazového řádku s otevřeným zdrojovým kódem, které dokážou vykreslit HTML do PDF a různých obrazových formátů. Abyste mohli tisknout zprávy ve formátu PDF, budete potřebovat wkhtmltopdf nářadí. Doporučená verze pro Odoo je 0.12.x který není dostupný v oficiálních repozitářích Ubuntu 18.04.

Stáhněte si balíček pomocí následujícího wgetcommand:

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

Po dokončení stahování nainstalujte balíček zadáním:

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

Instalovat a konfigurovat Odoo #

Odoo nainstalujeme z úložiště GitHub v izolovaném virtuálním prostředí Pythonu.

Před zahájením procesu instalace se změňte na uživatele „odoo12“:

sudo su - odoo12

Začněte klonováním zdrojového kódu Odoo 12 z úložiště Odoo GitHub:

git clone https://www.github.com/odoo/odoo --depth 1 --branch 12.0 /opt/odoo12/odoo

Po stažení zdrojového kódu vytvořte nové virtuální prostředí Pythonu pro instalaci Odoo 12:

cd /opt/odoo12python3 -m venv odoo-venv

Dále aktivujte prostředí pomocí následujícího příkazu:

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ějaké chyby při kompilaci, ujistěte se, že jste nainstalovali všechny požadované závislosti uvedené v části Before you begin sekce.

Deaktivujte prostředí pomocí následujícího příkazu:

deactivate

Vytvořte nový adresář pro vlastní doplňky:

mkdir /opt/odoo12/odoo-custom-addons

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

exit

Dále vytvořte konfigurační soubor zkopírováním přiloženého vzorového konfiguračního souboru:

sudo cp /opt/odoo12/odoo/debian/odoo.conf /etc/odoo12.conf

Otevřete soubor a upravte jej následovně:

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

Vytvořit soubor systémové jednotky #

Chcete-li spustit Odoo jako službu, musíme vytvořit soubor servisní jednotky v /etc/systemd/system/ adresář.

Otevřete textový editor a vložte následující konfiguraci:

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

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

[Install]
WantedBy=multi-user.target

Informujte systemd, že existuje nový soubor jednotky a spusťte službu Odoo spuštěním:

sudo systemctl daemon-reloadsudo systemctl start odoo12

Zkontrolujte stav služby pomocí následujícího příkazu:

sudo systemctl status odoo12

Výstup by měl vypadat podobně jako níže, což znamená, že služba Odoo je aktivní a běží.

* odoo12.service - Odoo12
   Loaded: loaded (/etc/systemd/system/odoo12.service; disabled; vendor preset: enabled)
   Active: active (running) since Tue 2018-10-09 14:15:30 PDT; 3s ago
 Main PID: 24334 (python3)
    Tasks: 4 (limit: 2319)
   CGroup: /system.slice/odoo12.service
           `-24334 /opt/odoo12/odoo-venv/bin/python3 /opt/odoo12/odoo/odoo-bin -c /etc/odoo12.conf

Povolte automatické spouštění služby Odoo při spouštění:

sudo systemctl enable odoo12

Pokud chcete vidět zprávy zaznamenané službou Odoo, můžete použít příkaz níže:

sudo journalctl -u odoo12

Otestujte instalaci #

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í:

Nakonfigurovat Nginx jako proxy pro ukončení SSL #

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. V tomto tutoriálu budeme používat example.com .
  • Nginx nainstalován.
  • Certifikát SSL pro vaši doménu. Můžete si nainstalovat bezplatný certifikát Let’s Encrypt SSL.

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

SSL terminační proxy je proxy server, který zpracovává šifrování/dešifrování SSL. To znamená, že náš terminační proxy (Nginx) bude zpracovávat a dešifrovat příchozí připojení TLS (HTTPS) a bude předávat nešifrované požadavky naší interní službě (Odoo), takže 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ší.

V tomto příkladu nakonfigurujeme ukončení SSL, přesměrování HTTP na HTTPS, přesměrování z WWW na jiné než WWW, uložíme do mezipaměti statické soubory a povolíme kompresi GZip.

Otevřete textový editor a vytvořte následující soubor:

sudo nano /etc/nginx/sites-enabled/example.com.conf
/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.

Jakmile budete hotovi, restartujte službu Nginx pomocí:

sudo systemctl restart nginx

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

/etc/odoo12.conf
proxy_mode = True

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

sudo systemctl restart odoo12

V tomto okamžiku je váš server nakonfigurován a můžete přistupovat k instanci Odoo na adrese:https://example.com

Změnit 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. Pokud chcete zakázat přímý přístup k vaší 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í.

V této příručce nakonfigurujeme Odoo tak, aby naslouchal pouze na 127.0.0.1 . Otevřete konfiguraci a na konec souboru přidejte následující dva řádky:

/etc/odoo12.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 odoo12

Povolit vícenásobné 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. Abychom povolili multiprocessing, musíme 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 pro výpočet počtu pracovníků a požadované velikosti paměti RAM použijeme 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 náročné požadavky, zatímco 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, můžete použít následující příkaz:

grep -c ^processor /proc/cpuinfo

Řekněme, že máme 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ůžeme na cron workera použít 5 pracovníků + 1 ​​pracovníka, 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ýše uvedený výpočet nám ukazuje, že naš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 následující řádky:

/etc/odoo12.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 odoo12

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 a v závislosti na vašem nastavení mohou na vašem serveru běžet i další služby.


Ubuntu
  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 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 na Ubuntu

  2. Jak nainstalovat Odoo 15 na Ubuntu 20.04

  3. Jak nainstalovat Odoo 11 na Ubuntu 16.04