How To Install Odoo 12 on Ubuntu 18.04
Innholdsfortegnelse:
- Før du begynner
- Opprett Odoo-bruker
- Installer og konfigurer PostgreSQL
- Installer Wkhtmltopdf
- Installer og konfigurer Odoo
- Opprett en Systemd Unit-fil
- Test installasjonen
- Konfigurer Nginx som SSL-termineringsproxy
- Endre bindingsgrensesnittet
- Aktiver multiprosessering
- Konklusjon
Odoo er den mest populære alt-i-ett-forretningsprogramvaren i verden. Det tilbyr en rekke forretningsapplikasjoner, inkludert CRM, nettsted, e-handel, fakturering, regnskap, produksjon, lager, prosjektstyring, lager og mye mer, alt sømløst integrert.
Odoo kan installeres på flere forskjellige måter. Den enkleste og raskeste måten å installere Odoo er ved å bruke de offisielle APT-lagringene.
Denne opplæringen dekker trinnene som kreves for å installere og konfigurere Odoo 12 for produksjon ved bruk av Git source og Python virtuelle miljø på et Ubuntu 18.04-system.
Før du begynner
Logg inn på Ubuntu-maskinen din som sudo-bruker og oppdater systemet til de nyeste pakkene:
sudo apt update && sudo apt upgrade
Installer Git, Pip, Node.js og verktøyene som kreves for å bygge Odoo-avhengigheter:
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
Opprett Odoo-bruker
Opprett en ny systembruker for Odoo med navnet
odoo12
med hjemmekatalog
/opt/odoo12
ved å bruke følgende kommando:
sudo useradd -m -d /opt/odoo12 -U -r -s /bin/bash odoo12
Du kan bruke et hvilket som helst navn for Odoo-brukeren din så lenge du oppretter en PostgreSQL-bruker med samme navn.
Installer og konfigurer PostgreSQL
Installer PostgreSQL-pakken fra Ubuntu sine standardlager:
sudo apt install postgresql
Når installasjonen er fullført, oppretter du en PostgreSQL-bruker med samme navn som den tidligere opprettede systembrukeren, i vårt tilfelle som er
odoo12
:
sudo su - postgres -c "createuser -s odoo12"
Installer Wkhtmltopdf
wkhtmltox
pakken inneholder et sett med åpen kildekode kommandolinjeverktøy som kan gjengi HTML til PDF og forskjellige bildeformater. For å skrive ut PDF-rapporter, trenger du
wkhtmltopdf
verktøyet. Den anbefalte versjonen for Odoo er
0.12.1
som ikke er tilgjengelig i de offisielle Ubuntu 18.04-depotene.
Last ned pakken ved hjelp av følgende wget-kommando:
wget
Når nedlastingen er fullført, installerer du pakken ved å skrive:
sudo apt install./wkhtmltox_0.12.1.3-1~bionic_amd64.deb
Installer og konfigurer Odoo
Vi vil installere Odoo fra GitHub-depotet i et isolert virtuelt Python-miljø.
Før du begynner med installasjonsprosessen, bytt til brukeren “odoo12”:
sudo su - odoo12
Begynn med å klone Odoo 12-kildekoden fra GitHub-depot:
git clone https://www.github.com/odoo/odoo --depth 1 --branch 12.0 /opt/odoo12/odoo
Når kildekoden er lastet ned, oppretter du et nytt virtuelt Python-miljø for installasjonen av Odoo 12:
cd /opt/odoo12
python3 -m venv odoo-venv
Deretter aktiverer du miljøet med følgende kommando:
source odoo-venv/bin/activate
Installer alle nødvendige Python-moduler med pip3:
pip3 install wheel
pip3 install -r odoo/requirements.txt
Hvis du støter på kompilasjonsfeil under installasjonen, må du forsikre deg om at du installerte alle de nødvendige avhengighetene som er oppført i delen
Before you begin
.
Deaktiver miljøet ved hjelp av følgende kommando:
deactivate
Lag en ny katalog for de tilpassede tilleggene:
mkdir /opt/odoo12/odoo-custom-addons
Bytt tilbake til sudo-brukeren din:
exit
Deretter oppretter du en konfigurasjonsfil ved å kopiere den inkluderte eksemplet på konfigurasjonsfilen:
sudo cp /opt/odoo12/odoo/debian/odoo.conf /etc/odoo12.conf
Åpne filen og rediger den slik:
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
Ikke glem å endre
my_admin_passwd
til noe sikrere.
Opprett en Systemd Unit-fil
For å kjøre Odoo som en tjeneste må vi opprette en serviceenhetsfil i
/etc/systemd/system/
directory.
Åpne teksteditoren din og lim inn følgende konfigurasjon:
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
Varsle systemd om at det eksisterer en ny enhetsfil og start Odoo-tjenesten ved å kjøre:
sudo systemctl daemon-reload
sudo systemctl start odoo12
Kontroller servicestatusen med følgende kommando:
sudo systemctl status odoo12
Produksjonen skal se ut som nedenfor, og indikerer at Odoo-tjenesten er aktiv og kjører.
* 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
Aktiver at Odoo-tjenesten automatisk startes ved oppstarttid:
sudo systemctl enable odoo12
Test installasjonen
Åpne nettleseren din og skriv:
http://:8069
http://:8069
Forutsatt at installasjonen er vellykket, vises en skjerm som ligner på følgende:
Konfigurer Nginx som SSL-termineringsproxy
Forsikre deg om at du har oppfylt følgende forutsetninger før du fortsetter med denne delen:
- Domenenavn som peker til din offentlige server-IP. I denne opplæringen vil vi bruke
example.com
Nginx installert.SSL-sertifikat for domenet ditt. Du kan installere et gratis Let's Encrypt SSL-sertifikat.
Standard Odoo-webserveren betjener trafikk via HTTP. For å gjøre Odoo-distribusjonen mer sikker, vil vi konfigurere Nginx som en SSL-termineringsproxy som vil betjene trafikken over
SSL termination proxy er en proxy-server som håndterer SSL-kryptering / dekryptering. Dette betyr at vår termineringsproxy (Nginx) vil håndtere og dekryptere innkommende TLS-tilkoblinger (HTTPS), og den vil overføre de ukrypterte forespørslene til vår interne tjeneste (Odoo) slik at trafikken mellom Nginx og Odoo ikke blir kryptert (HTTP).
Å bruke en omvendt proxy gir deg mange fordeler som belastningsbalansering, SSL-terminering, hurtigbufring, komprimering, servering av statisk innhold og mer.
I dette eksemplet vil vi konfigurere SSL Termination, HTTP til HTTPS omdirigering, WWW til non WWW omdirigering, cache de statiske filene og aktivere GZip-komprimering.
Åpne teksteditoren din og lag følgende fil:
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; }
Ikke glem å erstatte eksempel.com med Odoo-domenet ditt og angi riktig sti til SSL-sertifikatfilene. Utdragene som brukes i denne konfigurasjonen, opprettes i denne guiden.
Når du er ferdig, start Nginx-tjenesten på nytt med:
sudo systemctl restart nginx
Deretter må vi fortelle Odoo at vi vil bruke proxy. Å gjøre det, åpne konfigurasjonsfilen og legg til følgende linje:
/etc/odoo12.conf
proxy_mode = True
Start Odoo-tjenesten på nytt for at endringene skal tre i kraft:
sudo systemctl restart odoo12
På dette tidspunktet er serveren din konfigurert, og du kan få tilgang til Odoo-forekomsten på:
https://example.com
Endre bindingsgrensesnittet
Dette trinnet er valgfritt, men det er en god sikkerhetspraksis.
Som standard lytter Odoo-serveren til port 8069 på alle grensesnitt. Hvis du vil deaktivere direkte tilgang til Odoo-forekomsten din, kan du enten blokkere port
8069
for alle offentlige grensesnitt eller tvinge Odoo til kun å lytte på det lokale grensesnittet.
I denne guiden vil vi konfigurere Odoo til bare å lytte på
127.0.0.1
. Åpne konfigurasjonen, legg til følgende to linjer på slutten av filen:
xmlrpc_interface = 127.0.0.1 netrpc_interface = 127.0.0.1
Lagre konfigurasjonsfilen og start Odoo-serveren på nytt for at endringene skal tre i kraft:
Aktiver multiprosessering
Som standard jobber Odoo i multithreading-modus. For produksjonsinstallasjoner anbefales det å bytte til multiprosesseringsserveren da den øker stabiliteten og utnytter systemressursene bedre. For å muliggjøre multiprosessering må vi redigere Odoo-konfigurasjonen og sette et antall ikke-null arbeidstakerprosesser.
Antall arbeidere beregnes basert på antall CPU-kjerner i systemet og tilgjengelig RAM-minne.
I henhold til den offisielle Odoo-dokumentasjonen for å beregne arbeidernes antall og ønsket RAM-minnestørrelse vil vi bruke følgende formler og forutsetninger:
Beregning av antall ansatte
- teoretisk maksimalt antall arbeidere = (system_cpus * 2) + 11 arbeider kan tjene ~ = 6 samtidige brukereKronarbeidere krever også CPU
RAM-minne størrelse beregning
- Vi vil vurdere at 20% av alle forespørsler er tunge forespørsler, mens 80% er lettere. Tunge forespørsler bruker rundt 1 GB RAM mens de lettere bruker rundt 150 MB RAMNødvendig RAM =
number_of_workers * ((light_worker_ratio * light_worker_ram_estimation) + (heavy_worker_ratio * heavy_worker_ram_estimation))
grep -c ^processor /proc/cpuinfo
La oss si at vi har et system med 4 CPU-kjerner, 8 GB RAM-minne og 30 samtidige Odoo-brukere.
-
30 users / 6 = **5**
(5 er teoretisk antall arbeidere som trengs)(4 * 2) + 1 = **9**
(9 er det teoretiske maksimale antall arbeidere)
Basert på beregningen over kan vi bruke 5 arbeidere + 1 arbeider for cron-arbeideren, som totalt er 6 arbeidere.
Beregn RAM-minneforbruket basert på antall arbeidere:
-
RAM = 6 * ((0.8*150) + (0.2*1024)) ~= 2 GB of RAM
Beregningen over viser oss at vår Odoo-installasjon vil trenge rundt 2 GB RAM.
Hvis du vil bytte til multiprosesseringsmodus, åpner du konfigurasjonsfilen og legger ved følgende linjer:
/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
Start Odoo-tjenesten på nytt for at endringene skal tre i kraft:
sudo systemctl restart odoo12
Resten av systemressursene vil bli brukt av andre tjenester som kjører på dette systemet. I denne guiden installerte vi Odoo sammen med PostgreSQL og Nginx på en samme server, og avhengig av ditt oppsett kan det hende at du også har andre tjenester som kjører på serveren din.
Konklusjon
Denne opplæringen ledet deg gjennom installasjonen av Odoo 12 på Ubuntu 18.04 i et virtuelt Python-miljø med Nginx som en omvendt proxy. Du lærte også hvordan du aktiverer multiprosessering og optimaliserer Odoo for produksjonsmiljø.
Det kan også være lurt å sjekke opplæringen vår om hvordan du oppretter automatisk daglig sikkerhetskopi av Odoo-databasene dine.
ubuntu odoo postgresql python pip nginx proxy sslHvordan distribuere odoo 11 på ubuntu 18.04
Denne guiden dekker trinnene som er nødvendige for å installere og konfigurere Odoo for produksjon ved bruk av Git source og Python virtuelle miljø på et Ubuntu 18.04-system.
Hvordan distribuere rocket.chat på ubuntu 18.04
Rocket.Chat er en åpen kildekode kommunikasjonsplattform, et selvhusholdent Slack-alternativ. Rocket.Chat er en perfekt løsning for selskaper og lokalsamfunn som ønsker å være vert for sitt eget chatsystem.
Hvordan distribuere det aller viktigste på ubuntu 18.04
Mattermost bringer all teamkommunikasjonen din ett sted og gir forskjellige funksjoner, inkludert fildeling, en-til-en og gruppemeldinger, tilpassede emojis, videosamtaler og mer.