Android

Kako implementirati odoo 11 na ubuntu 18.04

Event Horizon ERP metal ind. | Greške i dorade u proizvodnji

Event Horizon ERP metal ind. | Greške i dorade u proizvodnji

Sadržaj:

Anonim

Odoo je najpopularniji all-in-one poslovni softver na svijetu. Nudi niz poslovnih aplikacija, uključujući CRM, web stranicu, e-trgovinu, naplatu, računovodstvo, proizvodnju, skladište, upravljanje projektima, zalihe i još mnogo toga, a sve su jednostavno integrirane.

Postoji nekoliko načina instaliranja Odooa, ovisno o potrebnom slučaju upotrebe. Najlakši i najbrži način za instaliranje Odooa je pomoću njihovih službenih APT spremišta.

Ovaj vodič opisuje korake potrebne za instaliranje i konfiguriranje Odooa za proizvodnju pomoću Git izvora i Python virtualnog okruženja na Ubuntu 18.04 sustavu.

Prije nego što počneš

Prijavite se na svoj Ubuntu stroj kao sudo korisnik i ažurirajte sustav na najnovije pakete:

sudo apt update && sudo apt upgrade

Instalirajte Git, Pip, Node.js i alate potrebne za izgradnju Odoo ovisnosti:

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

Stvorite korisnika Odoo

Stvorite novog korisnika sustava i grupirajte se s kućnim imenikom /opt/odoo koji će pokrenuti Odoo uslugu.

sudo useradd -m -d /opt/odoo -U -r -s /bin/bash odoo Možete imenovati korisnika što god želite, samo provjerite jeste li stvorili postgres korisnika s istim imenom.

Instalirajte i konfigurirajte PostgreSQL

Instalirajte PostgreSQL paket iz Ubuntuovih zadanih spremišta:

sudo apt install postgresql

Nakon što je instalacija dovršena stvorite PostgreSQL korisnika s istim imenom kao prethodno stvoreni korisnik sustava, u našem slučaju odoo :

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

Instalirajte Wkhtmltopdf

Paket wkhtmltox nudi skup alata naredbenog retka otvorenog koda koji mogu pretvoriti HTML u PDF i razne formate slika. Za ispis PDF izvješća trebat će wkhtmltopdf alat wkhtmltopdf . Preporučena verzija za Odoo je 0.12.1 koja nije dostupna u službenim spremištima Ubuntu 18.04.

Preuzmite paket pomoću sljedeće wget naredbe:

wget

Nakon dovršetka preuzimanja instalirajte paket upišite:

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

Instalirajte i konfigurirajte Odoo

Instalirat ćemo Odoo iz GitHub skladišta unutar izoliranog Python virtualnog okruženja kako bismo imali veću kontrolu nad verzijama i ažuriranjima.

Prije nego što započnete s postupkom instalacije, obavezno odoo na odoo korisnika.

sudo su - odoo

Da biste potvrdili da ste prijavljeni kao odoo korisnik, možete upotrijebiti sljedeću naredbu:

whoami

Sada možemo započeti s postupkom instalacije. Prvo klonirajte odoo iz GitHub-ovog spremišta:

git clone https://www.github.com/odoo/odoo --depth 1 --branch 11.0 /opt/odoo/odoo11

  • Ako želite instalirati drugu verziju Odoo, jednostavno promijenite broj verzije nakon --branch prekidača. Možete imenik imenovati po želji, na primjer, umjesto odoo11 možete koristiti ime svoje domene.

Da biste stvorili novo virtualno okruženje za pokretanje instance Odoo 11:

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

aktivirajte okruženje sljedećom naredbom:

source odoo11-venv/bin/activate

i instalirajte sve potrebne Python module s pip3:

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

pip3 je alat za instaliranje i upravljanje Python paketima.

Nakon dovršetka instalacije deaktivirajte okruženje i prebacite se na svog sudo korisnika koristeći sljedeće naredbe:

deactivate

exit

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

Zatim moramo kreirati konfiguracijsku datoteku. Možemo stvoriti novu ispočetka ili kopirati uključenu konfiguracijsku datoteku:

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

Otvorite datoteku i uredite je na sljedeći način:

/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 Ne zaboravite da my_admin_passwd promijenite u nešto sigurnije i prilagodite addons_path ako koristite prilagođene module.

Stvorite datoteku sistemske jedinice

Da bismo pokrenuli odoo kao uslugu, stvorit odoo11.service datoteku odoo11.service jedinice u /etc/systemd/system/ direktoriju sa sljedećim sadržajem:

/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

Obavijestite sustav da smo stvorili novu datoteku jedinice i pokrenuli Odoo uslugu izvršenjem:

sudo systemctl daemon-reload sudo systemctl start odoo11

Status usluge možete provjeriti sljedećom naredbom:

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

i ako nema grešaka, možete omogućiti uslugu Odoo da se automatski pokrene prilikom pokretanja:

sudo systemctl enable odoo11

sudo journalctl -u odoo11

Ispitajte instalaciju

Otvorite preglednik i utipkajte: http://:8069 http://:8069

Pod pretpostavkom da je instalacija uspješna, pojavit će se zaslon sličan sljedećem:

Konfigurirajte Nginx kao proxy SSL raskid

  • Ime domene pokazuje na IP vašeg javnog poslužitelja. U ovom ćemo udžbeniku koristiti example.com . Instalirali ste Nginx slijedeći ove upute. Za vašu domenu imate instaliran SSL certifikat. Možete instalirati besplatni certifikat Let's Šifriraj SSL slijedeći ove upute.

Zadani web poslužitelj Odoo poslužuje promet putem HTTP-a. Da bi naša implementacija Odoo bila sigurnija, konfigurirat ćemo Nginx kao proxy SSL raskid koji će služiti prometu preko

SSL završni proxy je proxy poslužitelj koji upravlja SSL enkripcijom / dešifriranjem. To znači da će naš prekidni proxy (Nginx) obraditi i dešifrirati dolazne TLS veze (HTTPS) i proslijedit će nešifrirane zahtjeve našoj internoj službi (Odoo), tako da promet između Nginx-a i Odoo-a neće biti šifriran (HTTP).

Moramo reći Odou da ćemo koristiti proxy, otvoriti konfiguracijsku datoteku i dodati sljedeći redak:

/etc/odoo11.conf

proxy_mode = True

Ponovo pokrenite Odoo uslugu da bi promjene stupile na snagu:

sudo systemctl restart odoo11

Korištenje Nginx-a kao proxy-a daje nam nekoliko prednosti. U ovom ćemo primjeru konfigurirati SSL Prekid, HTTP na HTTPS preusmjeravanje, WWW na non-WWW preusmjeravanje, spremiti u predmemoriju statičke datoteke i omogućiti GZip kompresiju.

/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; } Ne zaboravite zamijeniti example.com s domenom Odoo i postaviti ispravan put do datoteka s SSL certifikatima. Isječci korišteni u ovoj konfiguraciji kreirani su u ovom vodiču.

Nakon što ste završili, ponovno pokrenite Nginx uslugu sa:

sudo systemctl restart nginx

Promijenite vezujuće sučelje

Ovaj je korak izborni, ali je dobra sigurnosna praksa. Odoo poslužitelj prema zadanom sluša port 8069 na svim sučeljima, tako da ako želite onemogućiti izravan pristup vašoj instanci Odoo, možete ili blokirati port 8069 za sva javna sučelja ili prisiliti Odoo da sluša samo na lokalnom sučelju.

U ovom ćemo vodiču prisiliti Odoo da sluša samo 127.0.0.1 , otvorite Odoo konfiguraciju i dodajte sljedeća dva retka na kraju datoteke:

/etc/odoo11.conf

xmlrpc_interface = 127.0.0.1 netrpc_interface = 127.0.0.1

Spremite konfiguracijsku datoteku i ponovno pokrenite Odoo poslužitelj da bi promjene stupile na snagu:

sudo systemctl restart odoo

Omogući višestruku obradu

Odoo prema zadanim postavkama radi u multithreading modu. Za proizvodne implementacije preporučuje se prelazak na višeprocesorski poslužitelj jer povećava stabilnost i bolje iskorištava resurse sustava. Da bismo omogućili višestruku obradu, trebamo urediti Odoo konfiguraciju i postaviti neradni broj radnih procesa.

Broj radnika izračunava se na temelju broja jezgara CPU-a u sustavu i raspoložive RAM memorije.

Prema službenoj dokumentaciji Odoo za izračunavanje broja radnika i potrebne veličine RAM memorije koristit ćemo sljedeće formule i pretpostavke:

Obračun broja radnika

  • teoretski maksimalni broj radnika = (system_cpus * 2) + 11 radnika može opsluživati ​​~ = 6 istodobnih korisnikaCron radnici također zahtijevaju CPU

Izračun veličine RAM memorije

  • Smatrat ćemo da je 20% svih zahtjeva teški zahtjev, dok je 80% lakših. Teški zahtjevi koriste oko 1 GB RAM-a, dok lakši koriste oko 150 MB RAMNeeded RAM-a = broj_of_workers * (((light_worker_ratio * light_worker_ram_estimation) + (heavy_worker_ratio * heavy_worker_ram_estimation))

grep -c ^processor /proc/cpuinfo

Recimo da imamo sustav s 4 CPU jezgre, 8 GB RAM memorije i 30 istodobnih Odoo korisnika.

  • 30 users / 6 = **5** (5 je teoretski potreban broj radnika) (4 * 2) + 1 = **9** (9 je teoretski najveći broj radnika)

Na osnovu gornjeg izračuna možemo koristiti 5 radnika + 1 radnika za radnika na cron, što je ukupno 6 radnika.

Izračunajte potrošnju RAM memorije na temelju broja radnika:

  • RAM = 6 * ((0.8*150) + (0.2*1024)) ~= 2 GB of RAM

Gornji izračun pokazuje nam da će za našu instalaciju Odoo trebati oko 2 GB RAM-a.

Da biste se prebacili u višeprocesni način, otvorite konfiguracijsku datoteku i dodajte sljedeće retke:

/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

Ponovo pokrenite Odoo uslugu da bi promjene stupile na snagu:

sudo systemctl restart odoo11

Ostatak resursa sustava koristit će druge usluge koje se pokreću na našem stroju. U ovom smo vodiču instalirali Odoo zajedno s PostgreSQL i Nginx na isti poslužitelj, a ovisno o vašem postavljanju, možda ćete imati i druge usluge na vašem poslužitelju.

Zaključak

To je to! Ovaj je vodič vodio kroz instalaciju Odoo 11 na Ubuntu 18.04 u Python virtualnom okruženju koristeći Nginx kao obrnuti proxy. Također ste naučili kako omogućiti multiprocesiranje i optimizirati Odoo za proizvodno okruženje. Možda ćete također htjeti provjeriti naš vodič o tome kako stvoriti automatske dnevne sigurnosne kopije vaših Odoo baza podataka.

ubuntu odoo postgresql python pip nginx proxy ssl