GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak nasadit Odoo 11 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 hladce integrované.

Existuje několik způsobů, jak nainstalovat Odoodv závislosti na požadovaném případu použití. 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í.

Tato příručka popisuje kroky nezbytné pro instalaci a konfiguraci Odoo pro produkci pomocí zdroje Git a virtuálního prostředí Python v 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 a skupinu s domovským adresářem /opt/odoo který bude provozovat službu Odoo.

sudo useradd -m -d /opt/odoo -U -r -s /bin/bash odoo
Uživatele můžete pojmenovat jakkoli chcete, jen se ujistěte, že jste vytvořili uživatele postgres 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 PostgreSQL uživatele se stejným jménem jako dříve vytvořený systémový uživatel, v našem případě odoo :

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

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.1 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://builds.wkhtmltopdf.org/0.12.1.3/wkhtmltox_0.12.1.3-1~bionic_amd64.deb

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

sudo apt install ./wkhtmltox_0.12.1.3-1~bionic_amd64.deb

Instalovat a konfigurovat Odoo #

Odoo nainstalujeme z úložiště GitHub do izolovaného virtuálního prostředí Pythonu, abychom měli větší kontrolu nad verzemi a aktualizacemi.

Před zahájením procesu instalace se ujistěte, že jste přepnuli na odoo uživatel.

sudo su - odoo

Chcete-li potvrdit, že jste přihlášeni jako odoo můžete použít následující příkaz:

whoami

Nyní můžeme začít s procesem instalace. Nejprve naklonujte odoo z úložiště GitHub:

git clone https://www.github.com/odoo/odoo --depth 1 --branch 11.0 /opt/odoo/odoo11
  • Pokud chcete nainstalovat jinou verzi Odoo, změňte číslo verze za --branch přepínač.
  • Adresář můžete pojmenovat, jak chcete, například místo odoo11 můžete použít název své domény.

Chcete-li vytvořit nové virtuální prostředí pro instanci Odoo 11, spusťte:

cd /opt/odoopython3 -m venv odoo11-venv

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

source odoo11-venv/bin/activate

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

pip3 install wheelpip3 install -r odoo11/requirements.txt

pip3 je nástroj pro instalaci a správu balíčků Pythonu.

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.

Po dokončení instalace deaktivujte prostředí a přepněte zpět na uživatele sudo pomocí následujících příkazů:

deactivate
exit

Pokud plánujete instalovat vlastní moduly, je nejlepší nainstalovat tyto moduly do samostatného adresáře. Chcete-li vytvořit nový adresář pro naše vlastní moduly, spusťte:

sudo mkdir /opt/odoo/odoo11-custom-addonssudo chown odoo: /opt/odoo/odoo11-custom-addons

Dále musíme vytvořit konfigurační soubor, můžeme buď vytvořit nový od začátku, nebo zkopírovat přiložený konfigurační soubor:

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

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

/etc/odoo11.conf
[options]
; This is the password that allows database operations:
admin_passwd = my_admin_passwd
db_host = False
db_port = False
db_user = odoo
db_password = False
addons_path = /opt/odoo/odoo11/addons
; If you are using custom modules
; addons_path = /opt/odoo/odoo11/addons,/opt/odoo/odoo11-custom-addons
Nezapomeňte změnit my_admin_passwd na něco bezpečnějšího a upravte addons_path pokud používáte vlastní moduly.

Vytvořte soubor systemd unit #

Pro spuštění odoo jako služby vytvoříme odoo11.service soubor jednotky v /etc/systemd/system/ adresář s následujícím obsahem:

/etc/systemd/system/odoo11.service
[Unit]
Description=Odoo11
Requires=postgresql.service
After=network.target postgresql.service

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

[Install]
WantedBy=multi-user.target

Informujte systemd, že jsme vytvořili nový soubor jednotky a spusťte službu Odoo provedením:

sudo systemctl daemon-reloadsudo systemctl start odoo11

Stav služby můžete zkontrolovat pomocí následujícího příkazu:

sudo systemctl status odoo11
● odoo11.service - Odoo11
   Loaded: loaded (/etc/systemd/system/odoo11.service; disabled; vendor preset: enabled)
   Active: active (running) since Thu 2018-05-03 21:23:08 UTC; 3s ago
 Main PID: 18351 (python3)
    Tasks: 4 (limit: 507)
   CGroup: /system.slice/odoo11.service
           └─18351 /opt/odoo/odoo11-venv/bin/python3 /opt/odoo/odoo11/odoo-bin -c /etc/odoo11.conf

a pokud nejsou žádné chyby, můžete povolit automatické spuštění služby Odoo při spouštění:

sudo systemctl enable odoo11

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

sudo journalctl -u odoo11

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

Nakonfigurujte Nginx jako proxy pro ukončení SSL #

Pokud chcete použít Nginx jako proxy pro ukončení SSL, ujistěte se, že jste splnili následující předpoklady:

  • Máte název domény odkazující na IP vašeho veřejného serveru. V tomto tutoriálu budeme používat example.com .
  • Máte nainstalovaný Nginx podle těchto pokynů.
  • Máte nainstalovaný certifikát SSL pro vaši doménu. Bezplatný certifikát Let’s Encrypt SSL si můžete nainstalovat podle těchto pokynů.

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).

Musíme Odoo říct, že budeme používat proxy, otevřít konfigurační soubor a přidat následující řádek:

/etc/odoo11.conf
proxy_mode = True

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

sudo systemctl restart odoo11

Použití Nginx jako proxy nám poskytuje několik výhod. 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.

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

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, takže pokud chcete 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 naslouchalo pouze na místním rozhraní.

V této příručce přinutíme Odoo poslouchat pouze na 127.0.0.1 , otevřete konfiguraci Odoo a na konec souboru přidejte následující dva řádky:

/etc/odoo11.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 odoo

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 těžké 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 =počet_pracovníků * ( (poměr_lehčího_pracovníka *odhad_lehčího_pracovníka) + (poměr_těžkého_pracovníka *odhad_těžkého_pracovníka) )

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/odoo11.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 odoo11

Zbytek systémových prostředků využijí jiné služby, které běží na našem počítači. 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 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