How To Install Odoo 13 on Ubuntu 18.04
Inhoudsopgave:
- Vereisten installeren
- Een systeemgebruiker maken
- PostgreSQL installeren en configureren
- Wkhtmltopdf installeren
- Odoo installeren en configureren 13
- Een Systemd Unit-bestand maken
- Installatie testen
- Nginx configureren als SSL-beëindigingsproxy
- De bindingsinterface wijzigen
- Multiprocessing inschakelen
- Conclusie
Odoo is een populaire open-source suite van zakelijke apps. Het biedt een scala aan toepassingen, waaronder CRM, e-commerce, websitebouwer, facturering, boekhouding, productie, magazijn, projectbeheer, inventaris en nog veel meer, allemaal naadloos geïntegreerd.
Odoo kan op meerdere manieren worden geïnstalleerd, afhankelijk van het gebruik en de beschikbare technologieën. De eenvoudigste en snelste manier om Odoo te installeren is door de officiële Odoo APT-opslagplaatsen te gebruiken.
Door Odoo in een virtuele omgeving te installeren of te implementeren als Docker-container, hebt u meer controle over de systeemconfiguratie en kunt u meerdere Odoo-versies op hetzelfde systeem uitvoeren.
In deze gids helpen we u met het installeren en implementeren van Odoo 13 in een virtuele Python-omgeving op Ubuntu 18.04. We zullen Odoo downloaden van hun Github-repository en Nginx gebruiken als een omgekeerde proxy.
Vereisten installeren
Meld u aan bij uw Ubuntu als sudo-gebruiker en werk de Apt-cache bij:
sudo apt update
Installeer Git, Pip, Node.js en de tools die nodig zijn om Odoo-afhankelijkheden te bouwen:
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
Een systeemgebruiker maken
Maak een systeemgebruiker met Odoo, genaamd
odoo13
met home directory
/opt/odoo13
:
sudo useradd -m -d /opt/odoo13 -U -r -s /bin/bash odoo13
U kunt de naam van de gebruiker instellen op alles wat u maar wilt, zolang u een PostgreSQL-gebruiker met dezelfde naam maakt.
PostgreSQL installeren en configureren
Odoo gebruikt PostgreSQL als back-end van de database. Voer de volgende opdracht uit om PostgreSQL te installeren:
sudo apt install postgresql
Nadat de installatie is voltooid, maakt u een PostgreSQL-gebruiker met dezelfde naam als de eerder gemaakte systeemgebruiker, in ons geval dat is
odoo13
:
sudo su - postgres -c "createuser -s odoo13"
Wkhtmltopdf installeren
Het pakket
wkhtmltox
biedt een set open-source opdrachtregelprogramma's waarmee HTML kan worden omgezet in PDF en verschillende afbeeldingsindelingen. Om PDF-rapporten te kunnen afdrukken, moet u het hulpprogramma
wkhtmltopdf
installeren. De aanbevolen versie voor Odoo is
0.12.5
, die niet beschikbaar is in de standaard Ubuntu 18.04-opslagplaatsen.
Download het pakket met de volgende wget-opdracht:
wget
Nadat de download is voltooid, installeert u het pakket door te typen:
sudo apt install./wkhtmltox_0.12.5-1.bionic_amd64.deb
Odoo installeren en configureren 13
Zoals eerder vermeld, installeren we Odoo vanaf de bron in een geïsoleerde virtuele omgeving van Python.
Wijzig eerst naar gebruiker "odoo13":
sudo su - odoo13
Kloon de Odoo 13-broncode van GitHub:
git clone https://www.github.com/odoo/odoo --depth 1 --branch 13.0 /opt/odoo13/odoo
Nadat de download is voltooid, maakt u een nieuwe virtuele Python-omgeving voor Odoo:
cd /opt/odoo13
python3 -m venv odoo-venv
Activeer de omgeving met de volgende opdracht:
source odoo-venv/bin/activate
Installeer alle vereiste Python-modules met pip3:
pip3 install wheel
pip3 install -r odoo/requirements.txt
Als u tijdens de installatie een compilatiefout tegenkomt, moet u controleren of alle vereiste afhankelijkheden in het gedeelte
Installing Prerequisites
zijn geïnstalleerd.
Als u klaar bent, deactiveert u de omgeving door te typen:
deactivate
We zullen een nieuwe map maken met de add-ons van derden.
mkdir /opt/odoo13/odoo-custom-addons
Later voegen we deze map toe aan de parameter
addons_path
. Deze parameter definieert een lijst met mappen waarin Odoo naar modules zoekt.
Schakel terug naar uw sudo-gebruiker:
exit
Maak een configuratiebestand met de volgende inhoud:
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
Vergeet niet om de
my_admin_passwd
te wijzigen in iets veiligers.
Een Systemd Unit-bestand maken
Open uw teksteditor en maak een service-
odoo13.service
met de naam
odoo13.service
met de volgende inhoud:
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
Systeem laten weten dat er een nieuw bestand bestaat:
sudo systemctl daemon-reload
Start de Odoo-service en schakel deze in om op te starten door het uitvoeren van:
sudo systemctl enable --now odoo13
Controleer de servicestatus:
sudo systemctl status odoo13
De uitvoer zou er ongeveer zo uit moeten zien, wat aangeeft dat de Odoo-service actief en actief is.
● 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
Gebruik de onderstaande opdracht om de berichten te zien die door de Odoo-service zijn vastgelegd:
Installatie testen
Open uw browser en typ:
http://:8069
http://:8069
Ervan uitgaande dat de installatie is geslaagd, verschijnt een scherm als het volgende:

Nginx configureren als SSL-beëindigingsproxy
De standaard Odoo-webserver levert verkeer via HTTP. Om de Odoo-implementatie veiliger te maken, zullen we Nginx configureren als een SSL-beëindigingsproxy die het verkeer via HTTPS zal bedienen.
SSL-beëindigingsproxy is een proxyserver die de SSL-codering / decodering afhandelt. Dit betekent dat de beëindigingsproxy (Nginx) inkomende TLS-verbindingen (HTTPS) verwerkt en decodeert en de niet-gecodeerde aanvragen doorgeeft aan de interne service (Odoo). Het verkeer tussen Nginx en Odoo wordt niet gecodeerd (HTTP).
Het gebruik van een reverse-proxy geeft u veel voordelen, zoals Load Balancing, SSL-beëindiging, Caching, Compressie, Statische inhoud presenteren en meer.
Zorg ervoor dat u aan de volgende voorwaarden hebt voldaan voordat u doorgaat met deze sectie:
- Domeinnaam die verwijst naar het IP van uw openbare server. We gebruiken
example.com.Nginx installed.SSL-certificaat voor uw domein. U kunt een gratis Let's Encrypt SSL-certificaat installeren.
Open uw teksteditor en maak / bewerk het domein serverblok:
sudo nano /etc/nginx/sites-enabled/example.com
De volgende configuratie stelt SSL-beëindiging, HTTP naar HTTPS-omleiding, WWW naar niet-WWW-omleiding in, slaat de statische bestanden op in de cache en activeert GZip-compressie.
/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; }
Vergeet niet om example.com te vervangen door uw Odoo-domein en het juiste pad naar de SSL-certificaatbestanden in te stellen. De fragmenten die in deze configuratie worden gebruikt, worden in deze handleiding gemaakt.
Zodra u klaar bent, start u de Nginx-service opnieuw:
sudo systemctl restart nginx
Vervolgens moeten we Odoo vertellen dat hij de proxy moet gebruiken. Open hiervoor het configuratiebestand en voeg de volgende regel toe:
/etc/odoo13.conf
proxy_mode = True
Start de Odoo-service opnieuw om de wijzigingen van kracht te laten worden:
sudo systemctl restart odoo13
Op dit punt is de reverse proxy geconfigureerd en hebt u toegang tot uw Odoo-exemplaar op:
https://example.com
De bindingsinterface wijzigen
Deze stap is optioneel, maar het is een goede beveiligingspraktijk.
Odoo-server luistert standaard naar poort
8069
op alle interfaces. Om directe toegang tot de Odoo-instantie uit te schakelen, kunt u poort
8069
voor alle openbare interfaces blokkeren of Odoo dwingen alleen te luisteren op de lokale interface.
We zullen Odoo configureren om alleen te luisteren op
127.0.0.1
. Open de configuratie en voeg de volgende twee regels toe aan het einde van het bestand:
xmlrpc_interface = 127.0.0.1 netrpc_interface = 127.0.0.1
Sla het configuratiebestand op en start de Odoo-server opnieuw om de wijzigingen door te voeren:
Multiprocessing inschakelen
Odoo werkt standaard in de multithreading-modus. Voor productie-implementaties wordt aanbevolen om over te schakelen naar de multiprocessing-server omdat deze de stabiliteit verhoogt en de systeembronnen beter gebruikt.
Om multiprocessing in te schakelen, moet u de Odoo-configuratie bewerken en een niet-nul aantal werkprocessen instellen. Het aantal werkers wordt berekend op basis van het aantal CPU-kernen in het systeem en het beschikbare RAM-geheugen.
Volgens de officiële Odoo-documentatie om het aantal werknemers en de vereiste RAM-geheugengrootte te berekenen, kunt u de volgende formules en veronderstellingen gebruiken:
Werknemer nummer berekening
- Theoretisch maximaal aantal werkers = (system_cpus * 2) + 11 werkers kunnen ~ = 6 gelijktijdige gebruikers bedienen Werknemers hebben ook CPU nodig
RAM geheugen berekening
- We zullen in overweging nemen dat 20% van alle verzoeken zware verzoeken zijn en 80% lichtere. Zware aanvragen gebruiken ongeveer 1 GB RAM, terwijl de lichtere aanvragen ongeveer 150 MB RAM gebruiken Nodig RAM = number_of_workers
number_of_workers * ((light_worker_ratio * light_worker_ram_estimation) + (heavy_worker_ratio * heavy_worker_ram_estimation))
grep -c ^processor /proc/cpuinfo
Stel dat u een systeem hebt met 4 CPU-kernen, 8 GB RAM-geheugen en 30 gelijktijdige Odoo-gebruikers.
-
30 users / 6 = **5**(5 is het theoretische aantal benodigde werknemers)(4 * 2) + 1 = **9**(9 is het theoretische maximale aantal werknemers)
Op basis van de bovenstaande berekening kunt u 5 werkers + 1 werker gebruiken voor de cron-werker die in totaal 6 werkers is.
Bereken het RAM-geheugenverbruik op basis van het aantal werknemers:
-
RAM = 6 * ((0.8*150) + (0.2*1024)) ~= 2 GB of RAM
Uit de berekening blijkt dat de Odoo-installatie ongeveer 2 GB RAM nodig heeft.
Om over te schakelen naar de multiprocessing-modus, opent u het configuratiebestand en voegt u de berekende waarden toe:
/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
Start de Odoo-service opnieuw om de wijzigingen van kracht te laten worden:
sudo systemctl restart odoo13
De overige systeembronnen worden gebruikt door andere services die op dit systeem worden uitgevoerd. In deze gids hebben we Odoo samen met PostgreSQL en Nginx op dezelfde server geïnstalleerd. Afhankelijk van uw configuratie, kunt u ook andere services op uw server uitvoeren.
Conclusie
Deze tutorial leidde je door de installatie van Odoo 13 op Ubuntu 18.04 in een virtuele Python-omgeving met Nginx als een omgekeerde proxy. We hebben ook laten zien hoe u multiprocessing kunt inschakelen en Odoo kunt optimaliseren voor een productieomgeving.
U kunt ook onze tutorial raadplegen over het maken van automatische dagelijkse back-ups van Odoo-databases.
ubuntu odoo postgresql python pip nginx proxy sslHoe odoo 11 op ubuntu 18.04 te implementeren
Deze gids behandelt de stappen die nodig zijn voor het installeren en configureren van Odoo voor productie met behulp van Git source en Python virtuele omgeving op een Ubuntu 18.04-systeem.
Hoe odoo 12 op ubuntu 18.04 te implementeren
Deze tutorial behandelt de stappen die nodig zijn voor het installeren en configureren van Odoo 12 voor productie met behulp van Git source en Python virtuele omgeving op een Ubuntu 18.04-systeem.
Hoe odoo 11 op ubuntu 16.04 te installeren
Odoo is een van de meest populaire zakelijke software ter wereld. Deze gids behandelt de stappen die nodig zijn voor het installeren en configureren van Odoo met behulp van Git source en Python virtuele omgeving op Ubuntu 16.04







