Android

Jak nainstalovat odoo 13 na Ubuntu 18.04

Linux Mint 19.3 How to Create Bootable USB

Linux Mint 19.3 How to Create Bootable USB

Obsah:

Anonim

Odoo je populární open-source sada obchodních aplikací. Nabízí celou řadu aplikací, včetně CRM, e-Commerce, tvůrce webových stránek, fakturace, účetnictví, výroby, skladu, projektového řízení, inventáře a mnoho dalšího, vše hladce integrované.

Odoo lze instalovat několika způsoby v závislosti na pouzdru použití a dostupných technologiích. Nejjednodušší a nejrychlejší způsob instalace aplikace Odoo je pomocí oficiálních repozitářů Odoo APT.

Instalace Odoo ve virtuálním prostředí nebo nasazení jako kontejner Docker vám umožní mít větší kontrolu nad nastavením systému a spouštět více verzí Odoo ve stejném systému.

V této příručce vás provedeme instalací a nasazením Odoo 13 ve virtuálním prostředí Python na Ubuntu 18.04. Stáhneme Odoo z jejich úložiště Github a použijeme Nginx jako reverzní proxy.

Instalace předpokladů

Přihlaste se ke svému serveru Ubuntu jako uživatel sudo a aktualizujte mezipaměť Apt:

sudo apt update

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ření uživatele systému

Vytvořte uživatele systému, který bude spouštět Odoo s názvem odoo13 s domovským adresářem /opt/odoo13 :

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

Můžete nastavit jméno uživatele na cokoli, pokud vytvoříte PostgreSQL uživatele se stejným jménem.

Instalace a konfigurace PostgreSQL

Odoo používá PostgreSQL jako back-end databáze. Chcete-li nainstalovat PostgreSQL, spusťte následující příkaz:

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ě odoo13 :

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

Instalace Wkhtmltopdf

Balíček wkhtmltox poskytuje sadu open-source nástrojů příkazového řádku, které mohou vykreslit HTML do PDF a různých obrazových formátů. Abyste mohli tisknout zprávy PDF, musíte nainstalovat nástroj wkhtmltopdf . Doporučená verze pro Odoo je 0.12.5 , což není dostupné ve výchozím úložišti 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.5-1.bionic_amd64.deb

Instalace a konfigurace Odoo 13

Jak již bylo zmíněno, instalujeme Odoo ze zdroje uvnitř izolovaného virtuálního prostředí Pythonu.

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

sudo su - odoo13

Klonujte zdrojový kód Odoo 13 z GitHub:

git clone https://www.github.com/odoo/odoo --depth 1 --branch 13.0 /opt/odoo13/odoo

Po dokončení stahování vytvořte nové virtuální prostředí Python pro Odoo:

cd /opt/odoo13 python3 -m venv odoo-venv

Prostřednictvím následujícího příkazu aktivujte prostředí:

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 jakoukoli chybu kompilace, zkontrolujte, zda jsou nainstalovány všechny požadované závislosti uvedené v části Installing Prerequisites .

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

deactivate

Vytvoříme nový adresář, ve kterém budou uloženy doplňky třetích stran.

mkdir /opt/odoo13/odoo-custom-addons

Později přidáme tento adresář do parametru addons_path . 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/odoo13.conf /etc/odoo13.conf

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

Vytvoření souboru Systemd Unit

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

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

Description=Odoo13 Requires=postgresql.service After=network.target postgresql.service Type=simple SyslogIdentifier=odoo13 PermissionsStartOnly=true User=odoo13 Group=odoo13 ExecStart=/opt/odoo13/odoo-venv/bin/python3 /opt/odoo13/odoo/odoo-bin -c /etc/odoo13.conf StandardOutput=journal+console WantedBy=multi-user.target

Upozorněte systém, že existuje nový soubor jednotek:

sudo systemctl daemon-reload

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

sudo systemctl enable --now odoo13

Ověřte stav služby:

sudo systemctl status odoo13

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

● odoo13.service Loaded: loaded (/etc/systemd/system/odoo13.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2019-10-19 20:06:23 UTC; 3s ago Main PID: 1860 (python3) Tasks: 4 (limit: 2362) CGroup: /system.slice/odoo13.service └─1860 /opt/odoo13/odoo-venv/bin/python3 /opt/odoo13/odoo/odoo-bin -c /etc/odoo13.conf

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

sudo journalctl -u odoo13

Testování instalace

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

Konfigurace Nginxu jako proxy pro ukončení SSL

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

Server proxy pro ukončení SSL je server proxy, který zpracovává šifrování / dešifrování SSL. To znamená, že terminátor proxy (Nginx) bude zpracovávat a dešifrovat příchozí připojení TLS (HTTPS) a předávat nešifrované požadavky interní službě (Odoo). Provoz 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, zobrazování statického obsahu a další.

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. Pro vaši doménu použijeme nainstalovaný server example.com .Nginx. Certifikát SSL. Můžete nainstalovat bezplatný certifikát Pojďme šifrovat SSL.

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

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

Následující konfigurace nastavuje ukončení protokolu SSL, přesměrování HTTP na HTTPS, přesměrování WWW na přesměrování mimo WWW, ukládání vyrovnávacích pamětí do mezipaměti a povolení komprese 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:

sudo systemctl restart nginx

Dále musíme říct Odoo, aby použil proxy. Otevřete konfigurační soubor a přidejte následující řádek:

/etc/odoo13.conf

proxy_mode = True

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

sudo systemctl restart odoo13

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

Změna vazebního 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. 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 poslouchat pouze na lokálním rozhraní.

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

Povolení vícenásobného 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řejít na server pro více procesorů, protože to zvyšuje stabilitu a lépe využívá systémové prostředky.

Chcete-li povolit multiprocesování, musíte 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 můžete použít 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 těžké a 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á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ík pro cron pracovníka, což je celkem 6 pracovníků.

Vypočítat 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 kolem 2 GB RAM.

Chcete-li přepnout do režimu vícenásobného zpracování, otevřete konfigurační soubor a připojte vypočtené hodnoty:

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

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. 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 13 na Ubuntu 18.04 ve virtuálním prostředí Python pomocí Nginx jako reverzního proxy. Také jsme vám ukázali, 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 databází Odoo.

ubuntu odoo postgresql python pip nginx proxy ssl