Android

Kako implementirati odoo 12 na ubuntu 18.04

QlikView Product Tour

QlikView Product Tour

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.

Odoo se može instalirati na nekoliko različitih načina. 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 Odoo 12 za proizvodnju pomoću Git izvora i Python virtualnog okruženja na Ubuntu 18.04 sustavu.

Prije nego što počneš

Prijavite se na 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

Napravite novog korisnika sustava za Odoo po imenu odoo12 s kućnim imenikom /opt/odoo12 pomoću sljedeće naredbe:

sudo useradd -m -d /opt/odoo12 -U -r -s /bin/bash odoo12 Možete koristiti bilo koje ime za svog korisnika Odoo sve dok kreirate PostgreSQL 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 kreirani korisnik sustava, u našem slučaju je odoo12 :

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

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.

Prije nego što započnete s postupkom instalacije, promijenite korisničku "odoo12":

sudo su - odoo12

Započnite s kloniranjem Odoo 12 izvornog koda iz GitHub skladišta:

git clone https://www.github.com/odoo/odoo --depth 1 --branch 12.0 /opt/odoo12/odoo

Nakon preuzimanja izvornog koda stvorite novo Python virtualno okruženje za instalaciju Odoo 12:

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

Zatim aktivirajte okruženje sljedećom naredbom:

source odoo-venv/bin/activate

Instalirajte sve potrebne Python module s pip3:

pip3 install wheel pip3 install -r odoo/requirements.txt Ako tijekom instalacije naiđete na pogreške u sastavljanju, provjerite jeste li instalirali sve potrebne ovisnosti navedene u odjeljku Before you begin .

Deaktivirajte okruženje pomoću sljedeće naredbe:

deactivate

Izradite novi direktorij za prilagođene dodatke:

mkdir /opt/odoo12/odoo-custom-addons

Prebacite se natrag na svog sudo korisnika:

exit

Zatim stvorite konfiguracijsku datoteku kopiranjem uključene konfiguracijske datoteke uzorka:

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

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

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 Ne zaboravite promijeniti my_admin_passwd u nešto sigurnije.

Stvorite datoteku sistemske jedinice

Da bismo pokrenuli Odoo kao uslugu, moramo stvoriti datoteku servisne jedinice u /etc/systemd/system/ direktoriju.

Otvorite uređivač teksta i zalijepite sljedeću konfiguraciju:

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

Obavijestite sustavno da postoji nova jedinica datoteke i pokrenite Odoo uslugu pokretanjem:

sudo systemctl daemon-reload sudo systemctl start odoo12

Status usluge provjerite sljedećom naredbom:

sudo systemctl status odoo12

Izlaz bi trebao izgledati nešto poput dolje, naznačavajući da je Odoo usluga aktivna i pokrenuta.

* 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

Omogućite uslugu Odoo da se automatski pokrene u vrijeme dizanja:

sudo systemctl enable odoo12

sudo journalctl -u odoo12

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 raskida

Prije nastavka s ovim odjeljkom osigurajte da ste ispunili sljedeće preduvjete:

  • Naziv domene koji upućuje na IP vašeg javnog poslužitelja. U ovom će se vodiču koristiti domena example.com .Nginx Instal.SSL za vašu domenu. Možete instalirati besplatni Let's Encrypt SSL certifikat.

Zadani web poslužitelj Odoo poslužuje promet putem HTTP-a. Da bi naša implementacija Odoo postala 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).

Upotreba obrnutog proxyja pruža vam puno prednosti poput balansiranja učitavanja, SSL raskida, predmemoriranja, kompresije, posluživanja statičkog sadržaja i još više.

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.

Otvorite uređivač teksta i stvorite sljedeću datoteku:

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; } 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

Dalje, moramo reći Odou da ćemo koristiti proxy. Da biste to učinili, otvorite konfiguracijsku datoteku i dodajte sljedeći redak:

/etc/odoo12.conf

proxy_mode = True

Ponovo pokrenite Odoo uslugu da bi promjene stupile na snagu:

sudo systemctl restart odoo12

U ovom je trenutku vaš poslužitelj konfiguriran i svojoj pristupu Odoo možete pristupiti na: https://example.com

Promijenite vezujuće sučelje

Ovaj je korak izborni, ali je dobra sigurnosna praksa.

Odoo poslužitelj prema zadanim postavkama sluša port 8069 na svim sučeljima. Ako želite onemogućiti izravan pristup vašem primjerku 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 konfigurirati Odoo da sluša samo na 127.0.0.1 . Otvorite konfiguraciju dodajte sljedeća dva retka na kraju datoteke:

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

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 = number_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/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

Ponovo pokrenite Odoo uslugu da bi promjene stupile na snagu:

sudo systemctl restart odoo12

Ostatak resursa sustava koristit će ostale usluge koje rade na ovom sustavu. 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

Ovaj je vodič vodio kroz instalaciju Odoo 12 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