Android

Hur man installerar odoo 13 på ubuntu 18.04

How to Install Odoo 13 on Ubuntu 18.04

How to Install Odoo 13 on Ubuntu 18.04

Innehållsförteckning:

Anonim

Odoo är en populär öppen källkod med affärsappar. Det erbjuder en rad applikationer, inklusive CRM, e-handel, webbplatsbyggare, fakturering, redovisning, tillverkning, lager, projektledning, lager och mycket mer, allt sömlöst integrerat.

Odoo kan installeras på flera sätt beroende på användningsfall och tillgängliga tekniker. Det enklaste och snabbaste sättet att installera Odoo är att använda de officiella Odoo APT-lagringarna.

Genom att installera Odoo i en virtuell miljö eller distribuera som en Docker-behållare kan du ha mer kontroll över systemets uppsättning och köra flera Odoo-versioner på samma system.

I den här guiden kommer vi att leda dig genom att installera och distribuera Odoo 13 i en virtuell Python-miljö på Ubuntu 18.04. Vi laddar ner Odoo från deras Github-arkiv och använder Nginx som en omvänd proxy.

Installera förutsättningar

Logga in på din Ubuntu som sudo-användare och uppdatera Apt-cache:

sudo apt update

Installera Git, Pip, Node.js och de verktyg som krävs för att bygga Odoo-beroenden:

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

Skapa en systemanvändare

Skapa en systemanvändare som kommer att köra Odoo, med namnet odoo13 med hemkatalogen /opt/odoo13 :

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

Du kan ställa in användarens namn på vad du vill, så länge du skapar en PostgreSQL-användare med samma namn.

Installera och konfigurera PostgreSQL

Odoo använder PostgreSQL som databas back-end. För att installera PostgreSQL kör följande kommando:

sudo apt install postgresql

När installationen är klar skapar du en PostgreSQL-användare med samma namn som den tidigare skapade systemanvändaren, i vårt fall som är odoo13 :

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

Installera Wkhtmltopdf

wkhtmltox paketet innehåller en uppsättning kommandoradsverktyg med öppen källkod som kan återge HTML till PDF och olika bildformat. För att kunna skriva ut PDF-rapporter måste du installera wkhtmltopdf verktyget. Den rekommenderade versionen för Odoo är 0.12.5 , vilket inte är tillgängligt i Ubuntu 18.04 standardförvar.

Ladda ner paketet med följande wget-kommando:

wget

När nedladdningen är klar installerar du paketet genom att skriva:

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

Installera och konfigurera Odoo 13

Som nämnts tidigare installerar vi Odoo från källan i en isolerad virtuell Python-miljö.

Byt först till användaren “odoo13”:

sudo su - odoo13

Klona Odoo 13-källkoden från GitHub:

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

När nedladdningen är klar skapar du en ny virtuell Python-miljö för Odoo:

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

Aktivera miljön med följande kommando:

source odoo-venv/bin/activate

Installera alla nödvändiga Python-moduler med pip3:

pip3 install wheel pip3 install -r odoo/requirements.txt Om du stöter på något kompileringsfel under installationen, se till att alla nödvändiga beroenden som anges i avsnittet Installing Prerequisites är installerade.

När du är klar ska du inaktivera miljön genom att skriva:

deactivate

Vi skapar en ny katalog som kommer att innehålla tillägg för tredje part.

mkdir /opt/odoo13/odoo-custom-addons

Senare lägger vi till den här katalogen till addons_path parametern. Denna parameter definierar en lista över kataloger där Odoo söker efter moduler.

Byt tillbaka till din sudo-användare:

exit

Skapa en konfigurationsfil med följande innehåll:

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 Glöm inte att ändra my_admin_passwd till något säkrare.

Skapa en Systemd-enhetsfil

Öppna din textredigerare och skapa en serviceenhetsfil som heter odoo13.service med följande innehåll:

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

Meddela systemdokumentet att en ny enhetsfil finns:

sudo systemctl daemon-reload

Starta Odoo-tjänsten och aktiverade den att starta med start genom att köra:

sudo systemctl enable --now odoo13

Verifiera servicestatusen:

sudo systemctl status odoo13

Utgången ska se ut som nedan, vilket indikerar att Odoo-tjänsten är aktiv och kör.

● 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

För att se meddelanden som loggats av Odoo-tjänsten använder du kommandot nedan:

sudo journalctl -u odoo13

Testa installationen

Öppna din webbläsare och skriv: http://:8069 http://:8069

Förutsatt att installationen är framgångsrik visas en skärm som liknar följande:

Konfigurera Nginx som SSL Termination Proxy

Standard Odoo-webbservern visar trafik via HTTP. För att göra Odoo-distributionen säkrare kommer vi att konfigurera Nginx som en SSL-avslutande proxy som tjänar trafiken över

SSL termination proxy är en proxyserver som hanterar SSL-kryptering / dekryptering. Detta innebär att termineringsproxy (Nginx) kommer att behandla och dekryptera inkommande TLS-anslutningar (HTTPS) och vidarebefordra de okrypterade förfrågningarna till den interna tjänsten (Odoo). Trafiken mellan Nginx och Odoo kommer inte att krypteras (HTTP).

Att använda en omvänd proxy ger dig många fördelar som belastningsbalansering, SSL-avslutning, caching, komprimering, servering av statisk innehåll och mer.

Se till att du har uppfyllt följande förutsättningar innan du fortsätter med detta avsnitt:

  • Domännamn som pekar på din offentliga server-IP. Vi använder exempel.com. Nginx installerat.SSL-certifikat för din domän. Du kan installera ett gratis Let's Encrypt SSL-certifikat.

Öppna din textredigerare och skapa / redigera domänserverblocket:

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

Följande konfiguration ställer in SSL Termination, HTTP till HTTPS omdirigering, WWW till icke-WWW omdirigering, cache de statiska filerna och aktivera GZip-komprimering.

/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; } Glöm inte att ersätta exempel.com med din Odoo-domän och ange rätt sökväg till SSL-certifikatfilerna. De utdrag som används i den här konfigurationen skapas i den här guiden.

När du är klar startar du om Nginx-tjänsten:

sudo systemctl restart nginx

Därefter måste vi säga Odoo att använda proxy. För att göra det, öppna konfigurationsfilen och lägg till följande rad:

/etc/odoo13.conf

proxy_mode = True

Starta om Odoo-tjänsten så att ändringarna träder i kraft:

sudo systemctl restart odoo13

Vid denna tidpunkt är den omvända proxy konfigurerad, och du kan komma åt din Odoo-instans på: https://example.com

Ändra bindningsgränssnittet

Detta steg är valfritt, men det är en bra säkerhetspraxis.

Som standard lyssnar Odoo-servern på port 8069 på alla gränssnitt. För att inaktivera direkt åtkomst till Odoo-instansen kan du antingen blockera port 8069 för alla offentliga gränssnitt eller tvinga Odoo att lyssna endast på det lokala gränssnittet.

Vi konfigurerar Odoo att lyssna endast på 127.0.0.1 . Öppna konfigurationen lägg till följande två rader i slutet av filen:

/etc/odoo13.conf

xmlrpc_interface = 127.0.0.1 netrpc_interface = 127.0.0.1

Spara konfigurationsfilen och starta om Odoo-servern så att ändringarna träder i kraft:

sudo systemctl restart odoo13

Aktiverar multiprocessering

Som standard arbetar Odoo i multithreading-läge. För produktionsinstallationer rekommenderas det att byta till multiprosessionsservern eftersom det ökar stabiliteten och utnyttjar systemresurserna bättre.

För att möjliggöra multiprocessering måste du redigera Odoo-konfigurationen och ställa in ett antal arbetarprocesser som inte är noll. Antalet arbetare beräknas baserat på antalet CPU-kärnor i systemet och det tillgängliga RAM-minnet.

Enligt den officiella Odoo-dokumentationen för att beräkna arbetarnas antal och RAM-minnesstorlek, kan du använda följande formler och antaganden:

Beräkning av arbetarantal

  • Teoretiskt maximalt antal arbetare = (system_cpus * 2) + 11 arbetare kan tjäna ~ = 6 samtidiga användareCronarbetare kräver också CPU

RAM-minnesstorleksberäkning

  • Vi anser att 20% av alla förfrågningar är tunga förfrågningar och 80% är lättare. Tunga förfrågningar använder cirka 1 GB RAM medan de lättare använder cirka 150 MB RAMNeeded RAM = number_of_workers * ((light_worker_ratio * light_worker_ram_estimation) + (heavy_worker_ratio * heavy_worker_ram_estimation))

grep -c ^processor /proc/cpuinfo

Låt oss säga att du har ett system med 4 CPU-kärnor, 8 GB RAM-minne och 30 samtidiga Odoo-användare.

  • 30 users / 6 = **5** (5 är det teoretiska antalet arbetare som behövs) (4 * 2) + 1 = **9** (9 är det teoretiska högsta antalet arbetare)

Baserat på beräkningen ovan kan du använda 5 arbetare + 1 arbetare för cronarbetaren som totalt är 6 arbetare.

Beräkna RAM-minnesförbrukningen baserat på antalet arbetare:

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

Beräkningen visar att Odoo-installationen kommer att behöva cirka 2 GB RAM.

För att växla till multiprocesseringsläge, öppna konfigurationsfilen och lägg till de beräknade värdena:

/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

Starta om Odoo-tjänsten så att ändringarna träder i kraft:

sudo systemctl restart odoo13

Resten av systemresurserna kommer att användas av andra tjänster som körs på detta system. I den här guiden installerade vi Odoo tillsammans med PostgreSQL och Nginx på samma server. Beroende på din inställning kan du också ha andra tjänster som körs på din server.

Slutsats

Denna handledning ledde dig genom installationen av Odoo 13 på Ubuntu 18.04 i en Python-virtuell miljö med Nginx som en omvänd proxy. Vi har också visat dig hur du aktiverar multiprocessering och optimerar Odoo för en produktionsmiljö.

Du kanske också vill kontrollera vår handledning om hur du skapar automatisk dagliga säkerhetskopior av Odoo-databaser.

ubuntu odoo postgresql python pip nginx proxy ssl