Android

Kako instalirati odoo 13 na ubuntu 18.04

How To Install PyCharm In Ubuntu 18.04/ Ubuntu 20.04 + Create and Run First Python Project

How To Install PyCharm In Ubuntu 18.04/ Ubuntu 20.04 + Create and Run First Python Project

Sadržaj:

Anonim

Odoo je popularni open-source paket poslovnih aplikacija. Nudi niz aplikacija, uključujući CRM, e-trgovinu, izradu web stranica, naplatu, računovodstvo, proizvodnju, skladište, upravljanje projektima, zalihe i još mnogo toga, a sve su jednostavno integrirane.

Odoo se može instalirati na više načina, ovisno o slučaju upotrebe i dostupnim tehnologijama. Najjednostavniji i najbrži način za instaliranje Odooa je korištenjem službenih spremišta Odoo APT.

Instaliranje Odoo-a u virtualnom okruženju ili raspoređivanje kao Docker spremnik omogućuje vam veću kontrolu nad postavljenim sustavom i pokretanje više verzija Odoo-a na istom sustavu.

U ovom ćemo vas vodiču provesti kroz instalaciju i raspoređivanje Odoo 13 unutar Python virtualnog okruženja na Ubuntu 18.04. Preuzet ćemo Odoo iz njihovog Github-ovog spremišta i koristiti Nginx kao obrnuti proxy.

Instalacija preduvjeta

Prijavite se na svoj Ubuntu kao sudo korisnik i ažurirajte predmemoriju Apt:

sudo apt update

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

Izrada korisnika sustava

Napravite korisnika sustava koji će pokrenuti Odoo, nazvan odoo13 s kućnim direktorijom /opt/odoo13 :

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

Možete postaviti ime korisnika na sve što želite dok god kreirate PostgreSQL korisnika s istim imenom.

Instalacija i konfiguriranje PostgreSQL-a

Odoo koristi PostgreSQL kao pomoćnu bazu podataka. Da biste instalirali PostgreSQL, pokrenite sljedeću naredbu:

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

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

Instaliranje Wkhtmltopdf-a

Paket wkhtmltox pruža skup alata naredbenog retka otvorenog koda koji mogu pretvoriti HTML u PDF i razne formate slika. Da biste mogli ispisati PDF izvješća, trebate instalirati alat wkhtmltopdf . Preporučena verzija za Odoo je 0.12.5 , što nije dostupno u zadanim Ubuntu 18.04 spremištima.

Preuzmite paket pomoću sljedeće wget naredbe:

wget

Nakon dovršetka preuzimanja instalirajte paket tako da upišete:

sudo apt install./wkhtmltox_0.12.5-1.bionic_amd64.deb

Instaliranje i konfiguriranje Odoo 13

Kao što smo već spomenuli, instalirat ćemo Odoo iz izvora u izolirano Python virtualno okruženje.

Prvo promijenite korisnika "odoo13":

sudo su - odoo13

Klonirajte izvorni kod Odoo 13 iz GitHuba:

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

Nakon dovršetka preuzimanja stvorite novo Python virtualno okruženje za Odoo:

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

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šku kompilacije, provjerite jesu li instalirane sve potrebne ovisnosti navedene u odjeljku Installing Prerequisites instaliranje.

Nakon što učinite, deaktivirajte okoliš upisivanjem:

deactivate

Stvorit ćemo novu mapu koja će sadržavati adone treće strane.

mkdir /opt/odoo13/odoo-custom-addons

Kasnije ćemo taj direktorij addons_path parametru addons_path . Ovaj parametar definira popis direktorija u kojima Odoo traži module.

Prebacite se natrag na svog sudo korisnika:

exit

Napravite konfiguracijsku datoteku sa sljedećim sadržajem:

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

Izrada datoteke sistemske jedinice

Otvorite uređivač teksta i stvorite datoteku uslužne jedinice koja se zove odoo13.service sa sljedećim sadržajem:

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

Obavijestite systemd da postoji nova jedinica datoteke:

sudo systemctl daemon-reload

Pokrenite Odoo uslugu i omogućite je da se pokrene pri pokretanju pokretanjem:

sudo systemctl enable --now odoo13

Provjerite status usluge:

sudo systemctl status odoo13

Izlaz bi trebao izgledati nešto poput dolje, što ukazuje da je Odoo usluga aktivna i pokrenuta.

● 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

Za prikaz poruka zabilježenih od strane Odoo usluge, koristite naredbu u nastavku:

sudo journalctl -u odoo13

Ispitivanje instalacije

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

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

Konfiguriranje Nginxa kao proxy SSL raskida

Zadani web poslužitelj Odoo poslužuje promet putem HTTP-a. Da bismo Odoo implementaciju učinili sigurnijom 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 proxy zaključavanja (Nginx) obraditi i dešifrirati dolazne TLS veze (HTTPS) i proslijediti nekodirane zahtjeve internoj službi (Odoo). Promet između Nginx-a i Odoo-a neće biti šifriran (HTTP).

Korištenje 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.

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

  • Naziv domene koji upućuje na IP vašeg javnog poslužitelja. Za vašu domenu koristit ćemo example.com .Nginx Instal.SSL certifikat. Možete instalirati besplatni Let's Encrypt SSL certifikat.

Otvorite uređivač teksta i stvorite / uredite blok poslužitelja domene:

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

Sljedeća konfiguracija postavlja SSL Prekid, HTTP na HTTPS preusmjeravanje, WWW na non-WWW preusmjeravanje, predmemorira statičke datoteke i omogućuje 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.

Kada završite, ponovno pokrenite Nginx uslugu:

sudo systemctl restart nginx

Dalje, moramo reći Odoo-u da koristi proxy. Da biste to učinili, otvorite konfiguracijsku datoteku i dodajte sljedeći redak:

/etc/odoo13.conf

proxy_mode = True

Ponovo pokrenite Odoo uslugu da bi promjene stupile na snagu:

sudo systemctl restart odoo13

U ovom trenutku je obrnuti proxy konfiguriran i svojoj pristupu Odoo možete pristupiti na: https://example.com

Promjena veznog sučelja

Ovaj je korak izborni, ali je dobra sigurnosna praksa.

Odoo poslužitelj prema zadanim postavkama sluša port 8069 na svim sučeljima. Da biste onemogućili izravan pristup instanci Odoo, možete blokirati ulaz 8069 za sva javna sučelja ili prisiliti Odoo da sluša samo na lokalnom sučelju.

Konfigurirat ćemo Odoo da sluša samo na 127.0.0.1 . Otvorite konfiguraciju dodajte sljedeća dva retka na kraju datoteke:

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

Omogućavanje višeprocesiranja

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 sistemske resurse.

Da biste omogućili višestruku obradu, trebate urediti Odoo konfiguraciju i postaviti ne-nulti 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 kako biste izračunali broj radnika i potrebnu veličinu RAM memorije, možete koristiti 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, a 80% lakši. 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 imate 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 temelju gornjeg izračuna, možete koristiti 5 radnika + 1 radnika za radnika iz 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

Proračun pokazuje da će za instalaciju Odoo biti potrebno oko 2 GB RAM-a.

Da biste se prebacili u višeprocesni način, otvorite konfiguracijsku datoteku i dodajte izračunate vrijednosti:

/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

Ponovo pokrenite Odoo uslugu da bi promjene stupile na snagu:

sudo systemctl restart odoo13

Ostatak resursa sustava koristit će ostale usluge koje rade na ovom sustavu. U ovom smo vodiču na isti poslužitelj instalirali Odoo zajedno s PostgreSQL i Nginx. Ovisno o vašoj postavci, na poslužitelju ćete možda imati i druge usluge.

Zaključak

Ovaj je vodič vodio kroz instalaciju Odoo 13 na Ubuntu 18.04 u Python virtualnom okruženju koristeći Nginx kao obrnuti proxy. Također smo vam pokazali kako omogućiti višestruku obradu i optimizirati Odoo za proizvodno okruženje.

Možda ćete također htjeti provjeriti naš vodič o tome kako stvoriti automatske dnevne sigurnosne kopije Odoo baza podataka.

ubuntu odoo postgresql python pip nginx proxy ssl