Android

Cum se implementează odoo 12 pe ubuntu 18.04

Crearea unui client si al unui furnizor

Crearea unui client si al unui furnizor

Cuprins:

Anonim

Odoo este cel mai popular software de afaceri all-in-one din lume. Oferă o serie de aplicații de afaceri, inclusiv CRM, site web, comerț electronic, facturare, contabilitate, fabricație, depozit, management de proiect, inventar și multe altele, toate integrate perfect.

Odoo poate fi instalat în mai multe moduri diferite. Cea mai simplă și rapidă cale de a instala Odoo este folosirea depozitelor lor oficiale de APT.

Acest tutorial acoperă pașii necesari pentru instalarea și configurarea Odoo 12 pentru producție folosind sursa Git și mediul virtual Python pe un sistem Ubuntu 18.04.

Înainte de a începe

Conectați-vă la mașina Ubuntu ca utilizator sudo și actualizați sistemul la cele mai recente pachete:

sudo apt update && sudo apt upgrade

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

Creați un utilizator Odoo

Creați un nou utilizator de sistem pentru Odoo numit odoo12 cu directorul de acasă /opt/odoo12 folosind următoarea comandă:

sudo useradd -m -d /opt/odoo12 -U -r -s /bin/bash odoo12 Puteți utiliza orice nume pentru utilizatorul dvs. Odoo atât timp cât creați un utilizator PostgreSQL cu același nume.

Instalați și configurați PostgreSQL

Instalați pachetul PostgreSQL din depozitele implicite ale Ubuntu:

sudo apt install postgresql

După finalizarea instalării, creați un utilizator PostgreSQL cu același nume ca și utilizatorul sistemului creat anterior, în cazul nostru, care este odoo12 :

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

Instalați Wkhtmltopdf

Pachetul wkhtmltox oferă un set de instrumente de linie de comandă open source care pot face HTML în PDF și diferite formate de imagine. Pentru a tipări rapoarte PDF, veți avea nevoie de instrumentul wkhtmltopdf . Versiunea recomandată pentru Odoo este 0.12.1 care nu este disponibilă în depozitele oficiale Ubuntu 18.04.

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

wget

După terminarea descărcării, instalați pachetul tastând:

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

Instalați și configurați Odoo

Vom instala Odoo din depozitul GitHub într-un mediu virtual Python izolat.

Înainte de a începe procesul de instalare, schimbați utilizatorul „odoo12”:

sudo su - odoo12

Începeți prin clonarea codului sursă Odoo 12 din depozitul GitHub:

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

Odată descărcat codul sursă, creați un nou mediu virtual Python pentru instalarea Odoo 12:

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

Apoi, 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 erori de compilare în timpul instalării, asigurați-vă că ați instalat toate dependențele necesare enumerate în secțiunea Before you begin .

Dezactivați mediul folosind următoarea comandă:

deactivate

Creați un nou director pentru suplimentele personalizate:

mkdir /opt/odoo12/odoo-custom-addons

Comutați înapoi la utilizatorul sudo:

exit

Apoi, creați un fișier de configurare, copiind fișierul de configurare de exemplu inclus:

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

Deschideți fișierul și editați-l astfel:

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

Creați un fișier Unit Systemd

Pentru a rula Odoo ca serviciu, trebuie să creăm un fișier de unitate de serviciu în directorul /etc/systemd/system/ .

Deschideți editorul de text și lipiți următoarea configurație:

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

Notificați systemd că există un nou fișier de unitate și porniți serviciul Odoo rulând:

sudo systemctl daemon-reload sudo systemctl start odoo12

Verificați starea serviciului cu următoarea comandă:

sudo systemctl status odoo12

Rezultatul ar trebui să arate ceva ca mai jos, indicând faptul că serviciul Odoo este activ și funcțional.

* 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

Permiteți pornirea serviciului Odoo la momentul de pornire:

sudo systemctl enable odoo12

sudo journalctl -u odoo12

Testați instalarea

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:

Configurați Nginx ca proxy de terminare SSL

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. În acest tutorial vom folosi exemple.com.Nginx install.SSL certificat pentru domeniul dvs. Puteți instala un certificat SSL gratuit Encrypt.

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. Aceasta înseamnă că proxy-ul nostru de reziliere (Nginx) va gestiona și decripta conexiunile TLS primite (HTTPS) și va transmite cererile necriptate către serviciul nostru intern (Odoo), astfel încât traficul dintre Nginx și Odoo nu va fi criptat (HTTP).

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

În acest exemplu vom configura Terminarea SSL, redirecționarea HTTP la HTTPS, redirecționarea WWW la non-WWW, vom memora în cache fișierele statice și vom activa compresia GZip.

Deschideți editorul de text și creați următorul fișier:

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; } Nu uitați să înlocuiți example.com cu domeniul dvs. Odoo și să setați calea corectă pentru fișierele certificat SSL Fragmentele utilizate în această configurație sunt create în acest ghid.

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

sudo systemctl restart nginx

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

/etc/odoo12.conf

proxy_mode = True

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

sudo systemctl restart odoo12

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

Schimbați interfața 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. Dacă doriți să dezactivați accesul direct la instanța dvs. Odoo, puteți bloca portul 8069 pentru toate interfețele publice sau forța Odoo să asculte doar pe interfața locală.

În acest ghid 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/odoo12.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 odoo12

Activați multiprocesarea

În mod implicit, Odoo lucrează în modul multitreading. Pentru implementările de producție, se recomandă trecerea la serverul de multiprocesare, deoarece crește stabilitatea și utilizarea mai bună a resurselor sistemului. Pentru a activa multiprocesarea, trebuie să edităm configurația Odoo și să stabilim 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 muncitori și dimensiunea de memorie RAM necesară, vom folosi următoarele formule și ipoteze:

Calcularea numărului lucrătorului

  • Numărul teoretic maxim 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, în timp ce 80% sunt 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ă avem 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, putem folosi 5 lucrători + 1 muncitor pentru cron lucrător, care este în total 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 de mai sus ne arată că instalația noastră Odoo va avea nevoie de aproximativ 2 GB RAM.

Pentru a trece la modul multiprocesare, deschideți fișierul de configurare și adăugați următoarele linii:

/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

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

sudo systemctl restart odoo12

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 și, în funcție de configurarea dvs., puteți avea și alte servicii care rulează pe serverul dvs.

Concluzie

Acest tutorial te-a parcurs prin instalarea Odoo 12 pe Ubuntu 18.04 într-un mediu virtual Python folosind Nginx ca proxy invers. De asemenea, ați învățat cum să activați multiprocesarea și să optimizați Odoo pentru mediul 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