Android

Jak nasadit odoo 11 na Ubuntu 18.04

How to set up Enhanced Ecommerce (4:03)

How to set up Enhanced Ecommerce (4:03)

Obsah:

Anonim

Odoo je nejoblíbenějším podnikovým softwarem typu all-in-one na světě. Nabízí celou řadu obchodních aplikací, včetně CRM, webových stránek, elektronického obchodování, fakturace, účetnictví, výroby, skladu, řízení projektů, inventáře a mnoho dalšího, vše hladce integrováno.

Existuje několik způsobů, jak nainstalovat Odoo v závislosti na požadovaném případu použití. Nejjednodušší a nejrychlejší způsob instalace aplikace Odoo je pomocí jejich oficiálních repozitářů APT.

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 k 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 vytvář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řte uživatele Odoo

Vytvořte nového uživatele systému 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 Můžete uživatele pojmenovat, jak se vám líbí, jen se ujistěte, že vytvoříte postgres uživatele se stejným jménem.

Nainstalujte a nakonfigurujte 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ě odoo :

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

Nainstalujte Wkhtmltopdf

Balíček wkhtmltox poskytuje sadu nástrojů příkazového řádku s otevřeným zdrojovým kódem, které mohou vykreslit HTML do PDF a různé obrazové formáty. Abyste mohli tisknout zprávy PDF, budete potřebovat nástroj wkhtmltopdf . Doporučená verze pro Odoo je 0.12.1 která není k dispozici v oficiálních repozitářích Ubuntu 18.04.

Stáhněte si balíček pomocí následujícího příkazu wget:

wget

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

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

Nainstalujte a nakonfigurujte Odoo

Nainstalujeme Odoo 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 uživatele odoo .

sudo su - odoo

Pro potvrzení, že jste přihlášeni jako uživatel odoo , můžete použít následující příkaz:

whoami

Nyní můžeme začít s procesem instalace. Nejprve klonujte 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 aplikace Odoo, jednoduše změňte číslo verze za přepínačem --branch Adresář můžete pojmenovat podle svých představ, například místo odoo11 můžete použít název vaší domény.

Vytvoření nového virtuálního prostředí pro běh instance Odoo 11:

cd /opt/odoo python3 -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 Python pomocí pip3:

pip3 install wheel pip3 install -r odoo11/requirements.txt

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

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

sudo mkdir /opt/odoo/odoo11-custom-addons sudo 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ásledujícím způsobem:

/etc/odoo11.conf

; 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 Pokud používáte vlastní moduly, nezapomeňte změnit my_admin_passwd na něco bezpečnějšího a upravit addons_path .

Vytvořte soubor systémové jednotky

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

/etc/systemd/system/odoo11.service

Description=Odoo11 Requires=postgresql.service After=network.target postgresql.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 WantedBy=multi-user.target

Upozorněte systemd, že jsme vytvořili nový soubor jednotky a spustili službu Odoo spuštěním:

sudo systemctl daemon-reload sudo 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 neexistují žádné chyby, můžete povolit automatické spuštění služby Odoo v době spuštění:

sudo systemctl enable odoo11

sudo journalctl -u odoo11

Vyzkoušejte instalaci

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

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

Nakonfigurujte Nginx jako proxy pro ukončení SSL

  • Máte doménové jméno ukazující na IP vašeho veřejného serveru. V tomto tutoriálu použijeme example.com . Nginx máte nainstalovaný podle těchto pokynů. Máte nainstalovaný SSL certifikát pro vaši doménu. Podle těchto pokynů si můžete nainstalovat bezplatný certifikát šifrování SSL.

Výchozí webový server Odoo slouží k provozu přes HTTP. Aby bylo naše nasazení Odoo bezpečnější, nakonfigurujeme Nginx jako proxy proxy pro ukončení SSL, které bude sloužit přenosu přes

Proxy pro ukončení SSL je proxy server, který zpracovává šifrování / dešifrování SSL. To znamená, že náš terminátor 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 přenos mezi Nginx a Odoo nebude šifrován (HTTP).

Musíme Odoo říct, že použijeme proxy, otevřete konfigurační soubor a přidáme následující řádek:

/etc/odoo11.conf

proxy_mode = True

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

sudo systemctl restart odoo11

Používání Nginxu jako proxy serveru nám přináší několik výhod. V tomto příkladu nakonfigurujeme ukončení SSL, přesměrování HTTP na HTTPS, přesměrování WWW na přesměrování mimo WWW, ukládání 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; 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; # 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 vaší doménou Odoo a nastavit správnou cestu k souborům certifikátů SSL. Úryvky použité v této konfiguraci jsou vytvořeny v této příručce.

Po dokončení restartujte službu Nginx pomocí:

sudo systemctl restart nginx

Změňte vazebné rozhraní

Tento krok je volitelný, ale je to dobrý bezpečnostní postup. Ve výchozím nastavení server Odoo poslouchá port 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 poslouchat pouze na lokálním rozhraní.

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

/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 s více vlákny. Pro produkční nasazení se doporučuje přepnout na multiprocesorový server, protože to zvyšuje stabilitu a lépe využívá systémové prostředky. Abychom umožnili multiprocesování, musíme upravit konfiguraci Odoo a nastavit nenulový počet pracovních procesů.

Počet pracovníků se počítá na základě počtu jader CPU v systému a dostupné paměti RAM.

Podle oficiální dokumentace společnosti 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 čísla pracovníka

  • teoretický maximální počet pracovníků = (system_cpus * 2) + 11 pracovník může obsluhovat ~ = 6 souběžných uživatelů

Výpočet velikosti paměti RAM

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

grep -c ^processor /proc/cpuinfo

Řekněme, že máme systém se 4 jádry CPU, 8 GB paměti RAM a 30 současný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 použít 5 pracovníků + 1 ​​pracovník pro cron pracovníka, což je celkem 6 pracovníků.

Spočí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 ukazuje, že naše instalace aplikace Odoo bude potřebovat přibližně 2 GB paměti RAM.

Chcete-li přepnout do režimu vícenásobného zpracování, 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í další 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 nastavení můžete mít na serveru spuštěné i další služby.

Závěr

A je to! Tento tutoriál vás provedl instalací aplikace Odoo 11 na Ubuntu 18.04 ve virtuálním prostředí Python pomocí Nginx jako reverzního proxy. Také jste se naučili, jak povolit multiprocesing a optimalizovat Odoo pro produkční prostředí. Můžete si také prohlédnout náš tutoriál o tom, jak vytvořit automatické denní zálohy vašich databází Odoo.

ubuntu odoo postgresql python pip nginx proxy ssl