Android

Cum se instalează odoo 13 pe ubuntu 18.04

Montare sonerie modulară în tabloul electric

Montare sonerie modulară în tabloul electric

Cuprins:

Anonim

Odoo este o populară suită open-source de aplicații de afaceri. Oferă o serie de aplicații, inclusiv CRM, comerț electronic, constructor de site-uri, facturare, contabilitate, fabricație, depozit, management de proiect, inventar și multe altele, toate integrate perfect.

Odoo poate fi instalat în mai multe moduri, în funcție de cazul de utilizare și de tehnologiile disponibile. Cea mai simplă și rapidă cale de instalare a Odoo este folosirea depozitelor oficiale APT Odoo.

Instalarea Odoo într-un mediu virtual sau implementarea ca un container Docker vă permite să aveți mai mult control asupra configurației sistemului și să rulați mai multe versiuni Odoo pe același sistem.

În acest ghid, vă vom ghida prin instalarea și implementarea Odoo 13 într-un mediu virtual Python pe Ubuntu 18.04. Vom descărca Odoo din depozitul lor Github și vom folosi Nginx ca proxy invers.

Instalarea Premiselor

Conectați-vă la Ubuntu ca utilizator sudo și actualizați memoria cache Apt:

sudo apt update

Instalați Git, Pip, Node.js și instrumentele necesare pentru a construi dependențe 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

Crearea unui utilizator de sistem

Creați un utilizator de sistem care va rula Odoo, numit odoo13 cu directorul principal /opt/odoo13 :

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

Puteți seta numele utilizatorului la orice doriți, atât timp cât creați un utilizator PostgreSQL cu același nume.

Instalarea și configurarea PostgreSQL

Odoo folosește PostgreSQL ca bază de date a bazei de date. Pentru a instala PostgreSQL executați următoarea comandă:

sudo apt install postgresql

După terminarea instalării, creați un utilizator PostgreSQL cu același nume ca și utilizatorul de sistem creat anterior, în cazul nostru, odoo13 :

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

Instalarea Wkhtmltopdf

Pachetul wkhtmltox oferă un set de instrumente de linie de comandă open-source care pot transforma HTML în PDF și diferite formate de imagine. Pentru a putea tipări rapoarte PDF, va trebui să instalați instrumentul wkhtmltopdf . Versiunea recomandată pentru Odoo este 0.12.5 , care nu este disponibilă în depozitele implicite Ubuntu 18.04.

Descărcați pachetul folosind următoarea comandă wget:

wget

După ce descărcarea este completă, instalați pachetul tastând:

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

Instalarea și configurarea Odoo 13

După cum am menționat anterior, vom instala Odoo din sursă într-un mediu virtual Python izolat.

În primul rând, schimbați utilizatorul „odoo13”:

sudo su - odoo13

Clonați codul sursă Odoo 13 de la GitHub:

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

După finalizarea descărcării, creați un nou mediu virtual Python pentru Odoo:

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

Activați mediul cu următoarea comandă:

source odoo-venv/bin/activate

Instalați toate modulele Python necesare cu pip3:

pip3 install wheel pip3 install -r odoo/requirements.txt Dacă întâmpinați o eroare de compilare în timpul instalării, asigurați-vă că toate dependențele necesare enumerate în secțiunea Installing Prerequisites sunt instalate.

Odată terminat, dezactivați mediul tastând:

deactivate

Vom crea un nou director care va conține suplimente pentru terți.

mkdir /opt/odoo13/odoo-custom-addons

Mai târziu, vom adăuga acest director la parametrul addons_path . Acest parametru definește o listă de directoare în care Odoo caută module.

Comutați înapoi la utilizatorul sudo:

exit

Creați un fișier de configurare cu următorul conținut:

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 Nu uitați să schimbați my_admin_passwd în ceva mai sigur.

Crearea unui fișier Unit Systemd

Deschideți editorul de text și creați un fișier de unitate de service numit odoo13.service cu următorul conținut:

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

Notificați systemd că există un nou fișier de unitate:

sudo systemctl daemon-reload

Porniți serviciul Odoo și permiteți-l să pornească la pornire rulând:

sudo systemctl enable --now odoo13

Verificați starea serviciului:

sudo systemctl status odoo13

Produsul ar trebui să arate ca mai jos, ceea ce indică faptul că serviciul Odoo este activ și funcționează.

● 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

Pentru a vedea mesajele înregistrate de serviciul Odoo, utilizați comanda de mai jos:

sudo journalctl -u odoo13

Testarea instalării

Deschideți browserul și tastați: http://:8069 http://:8069

Dacă presupunem că instalarea este reușită, va apărea un ecran similar cu următoarele:

Configurarea Nginx ca proxy de terminare SSL

Serverul web implicit Odoo servește traficul prin HTTP. Pentru a face implementarea Odoo mai sigură, vom configura Nginx ca un proxy de terminare SSL care va servi traficul prin

Proxy de terminare SSL este un server proxy care gestionează criptarea / decriptarea SSL. Acest lucru înseamnă că proxy-ul de terminare (Nginx) va procesa și decripta conexiunile TLS de intrare (HTTPS) și va transmite cererile necriptate către serviciul intern (Odoo). Traficul dintre Nginx și Odoo nu va fi criptat (HTTP).

Utilizarea unui proxy invers vă oferă o mulțime de avantaje, cum ar fi Echilibrarea încărcării, terminarea SSL, memorarea în cache, compresia, difuzarea conținutului static și multe altele.

Asigurați-vă că ați îndeplinit următoarele cerințe înainte de a continua cu această secțiune:

  • Numele de domeniu îndreptat către IP-ul serverului dvs. public. Vom folosi exemple.com.Nginx installat.SSL certificat pentru domeniul dvs. Puteți instala un certificat SSL gratuit Encrypt.

Deschideți editorul de text și creați / editați blocul serverului de domeniu:

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

Următoarea configurație configurează Terminarea SSL, redirecționarea HTTP către HTTPS, redirecționarea WWW către non-WWW, cache fișierele statice și activează compresia 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; } Nu uitați să înlocuiți example.com cu domeniul dvs. Odoo și să setați calea corectă pentru fișierele de certificat SSL. Fragmentele utilizate în această configurație sunt create în acest ghid.

După ce ați terminat, reporniți serviciul Nginx:

sudo systemctl restart nginx

În continuare, trebuie să-i spunem lui Odoo să utilizeze proxy. Pentru aceasta, deschideți fișierul de configurare și adăugați următoarea linie:

/etc/odoo13.conf

proxy_mode = True

Reporniți serviciul Odoo pentru ca modificările să aibă efect:

sudo systemctl restart odoo13

În acest moment, proxy-ul invers este configurat și puteți accesa instanța dvs. Odoo la https://example.com : https://example.com

Schimbarea interfeței de legare

Acest pas este opțional, dar este o bună practică de securitate.

În mod implicit, serverul Odoo ascultă portul 8069 pe toate interfețele. Pentru a dezactiva accesul direct la instanța Odoo, puteți bloca portul 8069 pentru toate interfețele publice sau forța Odoo să asculte doar pe interfața locală.

Vom configura Odoo pentru a asculta doar pe 127.0.0.1 . Deschideți configurația adăugați următoarele două linii la sfârșitul fișierului:

/etc/odoo13.conf

xmlrpc_interface = 127.0.0.1 netrpc_interface = 127.0.0.1

Salvați fișierul de configurare și reporniți serverul Odoo pentru ca modificările să aibă efect:

sudo systemctl restart odoo13

Activarea multiprocesării

În mod implicit, Odoo lucrează în modul multitreading. Pentru implementările de producție, se recomandă schimbarea pe serverul de multiprocesare, deoarece crește stabilitatea și utilizarea mai bună a resurselor sistemului.

Pentru a activa multiprocesarea, trebuie să editați configurația Odoo și să setați un număr non-zero de procese de lucru. Numărul de lucrători este calculat pe baza numărului de nuclee de procesor din sistem și a memoriei RAM disponibile.

Conform documentației oficiale Odoo pentru a calcula numărul de lucrători și dimensiunea de memorie RAM necesară, puteți utiliza următoarele formule și ipoteze:

Calcularea numărului lucrătorului

  • Numărul maxim teoretic de lucrător = (system_cpus * 2) + 11 lucrători pot servi ~ = 6 utilizatori concurenti Lucrătorii Cron necesită, de asemenea, procesor

Calcularea dimensiunii memoriei RAM

  • Vom considera că 20% din toate cererile sunt solicitări mari, iar 80% dintre cele mai ușoare. Cererile mari utilizează aproximativ 1 GB RAM, în timp ce cele mai ușoare folosesc aproximativ 150 MB de RAM.

grep -c ^processor /proc/cpuinfo

Să zicem că aveți un sistem cu 4 nuclee de procesor, 8 GB memorie RAM și 30 de utilizatori simultan Odoo.

  • 30 users / 6 = **5** (5 este numărul teoretic de lucrători necesari) (4 * 2) + 1 = **9** (9 este numărul teoretic maxim de lucrători)

Pe baza calculului de mai sus, puteți utiliza 5 lucrători + 1 lucrător pentru cron lucrător, care este un total de 6 lucrători.

Calculați consumul de memorie RAM în funcție de numărul de lucrători:

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

Calculul arată că instalarea Odoo va avea nevoie de aproximativ 2 GB RAM.

Pentru a comuta la modul multiprocesare, deschideți fișierul de configurare și adăugați valorile calculate:

/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

Reporniți serviciul Odoo pentru ca modificările să aibă efect:

sudo systemctl restart odoo13

Restul resurselor sistemului vor fi utilizate de alte servicii care rulează pe acest sistem. În acest ghid, am instalat Odoo împreună cu PostgreSQL și Nginx pe același server. În funcție de configurare, este posibil să aveți și alte servicii pe server.

Concluzie

Acest tutorial te-a parcurs prin instalarea Odoo 13 pe Ubuntu 18.04 într-un mediu virtual Python folosind Nginx ca proxy invers. V-am arătat, de asemenea, cum să activați multiprocesarea și să optimizați Odoo pentru un mediu de producție.

De asemenea, poate doriți să consultați tutorialul nostru despre cum puteți crea copii de rezervă automate zilnice ale bazelor de date Odoo

ubuntu odoo postgresql python pip nginx proxy ssl