Android

Jak nasadit odoo 12 na Ubuntu 18.04

Rocket.Chat Demo

Rocket.Chat Demo

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.

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

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 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 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 svého uživatele Odoo můžete použít libovolné jméno, pokud vytvoříte PostgreSQL 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ě odoo12 :

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

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 uvnitř izolovaného virtuálního prostředí Python.

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

sudo su - odoo12

Začněte klonováním zdrojového kódu Odoo 12 z úložiště 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/odoo12 python3 -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 Python pomocí pip3:

pip3 install wheel pip3 install -r odoo/requirements.txt Pokud během instalace narazíte na nějaké chyby kompilace, ujistěte se, že jste nainstalovali všechny požadované závislosti uvedené v části Before you begin .

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 ukázkového konfiguračního souboru:

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

Otevřete soubor a upravte jej následujícím způsobem:

sudo nano /etc/odoo12.conf /etc/odoo12.conf

; 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řte soubor Systemd Unit

Pro spuštění Odoo jako služby musíme vytvořit soubor servisní jednotky v adresáři /etc/systemd/system/ .

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

sudo nano /etc/systemd/system/odoo12.service /etc/systemd/system/odoo12.service

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

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

sudo systemctl daemon-reload sudo systemctl start odoo12

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

sudo systemctl status odoo12

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

* 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

Povolit automatické spuštění služby Odoo v době spuštění:

sudo systemctl enable odoo12

sudo journalctl -u odoo12

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 SSL Termination Proxy

Před pokračováním v této části se ujistěte, že jste splnili následující předpoklady:

  • Název domény směřující na IP vašeho veřejného serveru. V tomto tutoriálu použijeme pro vaši doménu nainstalovaný certifikát example.com .Nginx.SSL. Můžete nainstalovat bezplatný certifikát Pojďme šifrovat 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 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).

Použití reverzního proxy serveru vám přináší mnoho výhod, jako je například vyrovnávání zatížení, ukončení protokolu 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í WWW na přesměrování mimo WWW, ukládání 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 /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

Dále musíme Odoo říct, že použijeme proxy. 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

Nyní je váš server nakonfigurován a ke své instanci Odoo můžete přistupovat na adrese: https://example.com

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. 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 nakonfigurujeme Odoo tak, aby poslouchal pouze na 127.0.0.1 . Otevřete konfiguraci a přidejte následující dva řádky na konec souboru:

/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 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/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ů budou využívat další služby, které běží v tomto systému. 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

Tento tutoriál vás provedl instalací aplikace Odoo 12 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