Chat eksempel: gennemgang af XML-RPC
Indholdsfortegnelse:
- Før du begynder
- Opret Odoo-bruger
- Installer og konfigurer PostgreSQL
- Installer Wkhtmltopdf
- Installer og konfigurer Odoo
- Opret en systemd-enhedsfil
- Test installationen
- Konfigurer Nginx som en SSL-termineringsproxy
- Skift bindingsgrænsefladen
- Aktivér multiprocessering
- Konklusion
Odoo er den mest populære alt-i-en forretningssoftware i verden. Det tilbyder en række forretningsapplikationer, herunder CRM, websted, e-handel, fakturering, regnskab, produktion, lager, projektstyring, inventar og meget mere, alt sammen integreret.
Der er flere måder at installere Odoo på, afhængigt af den krævede brugssag. Den nemmeste og hurtigste måde at installere Odoo er ved at bruge deres officielle APT-lagre.
Denne vejledning dækker de nødvendige trin til installation og konfiguration af Odoo til produktion ved hjælp af Git source og Python virtuelle miljø på et Ubuntu 18.04-system.
Før du begynder
Log ind på din Ubuntu-maskine som sudo-bruger og opdater systemet til de nyeste pakker:
sudo apt update && sudo apt upgrade
Installer Git, Pip, Node.js og de nødvendige værktøjer til at opbygge Odoo-afhængigheder:
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
Opret Odoo-bruger
Opret en ny systembruger og gruppe med hjemmekatalog
/opt/odoo
, der kører Odoo-tjenesten.
sudo useradd -m -d /opt/odoo -U -r -s /bin/bash odoo
Du kan navngive brugeren hvad du vil, bare sørg for at oprette en postgres-bruger med samme navn.
Installer og konfigurer PostgreSQL
Installer PostgreSQL-pakken fra Ubuntu's standardlager:
sudo apt install postgresql
Når installationen er afsluttet, skal du oprette en PostgreSQL-bruger med samme navn som den tidligere oprettede systembruger, i vores tilfælde
odoo
:
sudo su - postgres -c "createuser -s odoo"
Installer Wkhtmltopdf
wkhtmltox
pakken indeholder et sæt open source-kommandolinjeværktøjer, der kan gengive HTML til PDF og forskellige billedformater. For at udskrive PDF-rapporter skal du bruge
wkhtmltopdf
værktøjet. Den anbefalede version til Odoo er
0.12.1
som ikke er tilgængelig i de officielle Ubuntu 18.04-oplagringssteder.
Download pakken ved hjælp af følgende wget-kommando:
wget
Når download er afsluttet, skal du installere pakken ved at skrive:
sudo apt install./wkhtmltox_0.12.1.3-1~bionic_amd64.deb
Installer og konfigurer Odoo
Vi installerer Odoo fra GitHub-arkivet i et isoleret virtuelt Python-miljø, så vi kan have mere kontrol over versioner og opdateringer.
Før du starter med installationsprocessen, skal du sørge for at skifte til
odoo
bruger.
sudo su - odoo
For at bekræfte, at du er logget ind som
odoo
bruger, kan du bruge følgende kommando:
whoami
Nu kan vi starte med installationsprocessen. Klon først odoo fra GitHub-arkivet:
git clone https://www.github.com/odoo/odoo --depth 1 --branch 11.0 /opt/odoo/odoo11
- Hvis du vil installere en anden Odoo-version, skal du bare ændre versionnummeret efter
--branch
skiftet. Du kan navngive kataloget, som du vil, for eksempel i stedet forodoo11
kan du bruge navnet på dit domæne.
Sådan opretter du et nyt virtuelt miljø til Odoo 11-forekomstkørsel:
cd /opt/odoo
python3 -m venv odoo11-venv
aktiver miljøet med følgende kommando:
source odoo11-venv/bin/activate
og installer alle påkrævede Python-moduler med pip3:
pip3 install wheel
pip3 install -r odoo11/requirements.txt
pip3
er et værktøj til installation og styring af Python-pakker.
Når installationen er afsluttet, deaktiveres miljøet og skift tilbage til din sudo-bruger ved hjælp af følgende kommandoer:
deactivate
exit
sudo mkdir /opt/odoo/odoo11-custom-addons
sudo chown odoo: /opt/odoo/odoo11-custom-addons
Derefter skal vi oprette en konfigurationsfil, vi kan enten oprette en ny fra bunden eller kopiere den inkluderede konfigurationsfil:
sudo cp /opt/odoo/odoo11/debian/odoo.conf /etc/odoo11.conf
Åbn filen og rediger den som følger:
/etc/odoo11.conf
; This is the password that allows database operations: admin_passwd = my_admin_passwd db_host = False db_port = False db_user = odoo db_password = False addons_path = /opt/odoo/odoo11/addons; If you are using custom modules; addons_path = /opt/odoo/odoo11/addons, /opt/odoo/odoo11-custom-addons
Glem ikke at ændre
my_admin_passwd
til noget mere sikkert og justere
addons_path
hvis du bruger brugerdefinerede moduler.
Opret en systemd-enhedsfil
For at køre odoo som en service opretter vi en fil fra
odoo11.service
i
/etc/systemd/system/
folder med følgende indhold:
Description=Odoo11 Requires=postgresql.service After=network.target postgresql.service Type=simple SyslogIdentifier=odoo11 PermissionsStartOnly=true User=odoo Group=odoo ExecStart=/opt/odoo/odoo11-venv/bin/python3 /opt/odoo/odoo11/odoo-bin -c /etc/odoo11.conf StandardOutput=journal+console WantedBy=multi-user.target
Underret systemd om, at vi oprettede en ny enhedsfil og start Odoo-tjenesten ved at udføre:
sudo systemctl daemon-reload
sudo systemctl start odoo11
Du kan kontrollere servicestatus med følgende kommando:
sudo systemctl status odoo11
● odoo11.service - Odoo11 Loaded: loaded (/etc/systemd/system/odoo11.service; disabled; vendor preset: enabled) Active: active (running) since Thu 2018-05-03 21:23:08 UTC; 3s ago Main PID: 18351 (python3) Tasks: 4 (limit: 507) CGroup: /system.slice/odoo11.service └─18351 /opt/odoo/odoo11-venv/bin/python3 /opt/odoo/odoo11/odoo-bin -c /etc/odoo11.conf
og hvis der ikke er nogen fejl, kan du aktivere Odoo-tjenesten automatisk startes ved starttidspunktet:
sudo systemctl enable odoo11
Test installationen
Åbn din browser, og skriv:
http://:8069
http://:8069
Forudsat at installationen er vellykket, vises en skærm, der ligner følgende:
Konfigurer Nginx som en SSL-termineringsproxy
- Du har et domænenavn, der peger på din offentlige server-IP. I denne tutorial vil vi bruge
example.com
Du har Nginx installeret ved at følge disse instruktioner. Du har et SSL-certifikat installeret til dit domæne. Du kan installere et gratis Let's Encrypt SSL-certifikat ved at følge disse instruktioner.
Standard Odoo-webserveren betjener trafik via HTTP. For at gøre vores Odoo-implementering mere sikker konfigurerer vi Nginx som en SSL-termineringsproxy, der tjener trafikken over
SSL-termineringsproxy er en proxyserver, der håndterer SSL-kryptering / dekryptering. Dette betyder, at vores termineringsproxy (Nginx) vil håndtere og dekryptere indgående TLS-forbindelser (HTTPS), og den vil videresende de ukrypterede anmodninger til vores interne service (Odoo), så trafikken mellem Nginx og Odoo ikke bliver krypteret (HTTP).
Vi skal fortælle Odoo, at vi vil bruge en proxy, åbne konfigurationsfilen og tilføje følgende linje:
/etc/odoo11.conf
proxy_mode = True
Genstart Odoo-tjenesten for at ændringerne får virkning:
sudo systemctl restart odoo11
Brug af Nginx som proxy giver os flere fordele. I dette eksempel konfigurerer vi SSL Termination, HTTP til HTTPS omdirigering, WWW til ikke-WWW omdirigering, cache de statiske filer og aktiverer 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; }
Glem ikke at erstatte eksempel.com med dit Odoo-domæne og indstille den rigtige sti til SSL-certifikatfiler. De kodestykker, der bruges i denne konfiguration, oprettes i denne vejledning.
Når du er færdig, skal du genstarte Nginx-tjenesten med:
Skift bindingsgrænsefladen
Dette trin er valgfrit, men det er en god sikkerhedspraksis. Som standard lytter Odoo-serveren til port 8069 på alle grænseflader, så hvis du vil deaktivere direkte adgang til din Odoo-forekomst, kan du enten blokere port 8069 for alle offentlige grænseflader eller tvinge Odoo til kun at lytte på den lokale grænseflade.
I denne vejledning vil vi tvinge Odoo til kun at lytte på
127.0.0.1
, åbne Odoo-konfigurationen, tilføj følgende to linjer i slutningen af filen:
xmlrpc_interface = 127.0.0.1 netrpc_interface = 127.0.0.1
Gem konfigurationsfilen, og genstart Odoo-serveren, så ændringerne træder i kraft:
Aktivér multiprocessering
Som standard fungerer Odoo i multithreading-tilstand. Ved produktionsinstallationer anbefales det at skifte til multiprosessionsserveren, da det øger stabiliteten og udnytter systemressourcerne bedre. For at muliggøre multiprocessering er vi nødt til at redigere Odoo-konfigurationen og indstille et antal arbejdsprocesser, der ikke er nul.
Antallet af arbejdere beregnes ud fra antallet af CPU-kerner i systemet og den tilgængelige RAM-hukommelse.
I henhold til den officielle Odoo-dokumentation til beregning af arbejdstagernes antal og den krævede RAM-hukommelsesstørrelse vil vi bruge følgende formler og antagelser:
Beregning af arbejdstagerantal
- teoretisk maksimalt antal arbejdstagere = (system_cpus * 2) + 11 arbejdstager kan tjene ~ = 6 samtidige brugereKronearbejdere kræver også CPU
RAM-hukommelsesstørrelsesberegning
- Vi vil overveje, at 20% af alle anmodninger er tunge anmodninger, mens 80% er lettere. Tunge anmodninger bruger ca. 1 GB RAM, mens de lettere bruger omkring 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
Lad os sige, at vi har et system med 4 CPU-kerner, 8 GB RAM-hukommelse og 30 samtidige Odoo-brugere.
-
30 users / 6 = **5**
(5 er det teoretiske antal arbejdstagere, der er nødvendigt)(4 * 2) + 1 = **9**
(9 er det teoretiske maksimale antal arbejdstagere)
Baseret på beregningen ovenfor kan vi bruge 5 arbejdstagere + 1 arbejdstager til cron-arbejdstageren, som i alt er 6 arbejdere.
Beregn RAM-hukommelsesforbruget baseret på antallet af medarbejdere:
-
RAM = 6 * ((0.8*150) + (0.2*1024)) ~= 2 GB of RAM
Beregningen ovenfor viser os, at vores Odoo-installation har brug for omkring 2 GB RAM.
For at skifte til multiprocesseringstilstand skal du åbne konfigurationsfilen og tilføje følgende linjer:
/etc/odoo11.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
Genstart Odoo-tjenesten for at ændringerne får virkning:
sudo systemctl restart odoo11
Resten af systemressourcerne bruges af andre tjenester, der kører på vores maskine. I denne guide installerede vi Odoo sammen med PostgreSQL og Nginx på en samme server, og afhængigt af dit opsætning kan du muligvis også have andre tjenester, der kører på din server.
Konklusion
Det er det! Denne tutorial ledte dig gennem installationen af Odoo 11 på Ubuntu 18.04 i et Python-virtuelt miljø ved hjælp af Nginx som en omvendt proxy. Du lærte også, hvordan du aktiverer multiprocessering og optimerer Odoo til produktionsmiljø. Du vil måske også tjekke vores tutorial om, hvordan du opretter automatisk daglige sikkerhedskopier af dine Odoo-databaser.
ubuntu odoo postgresql python pip nginx proxy sslSådan implementeres odoo 12 på ubuntu 18.04
Denne tutorial dækker de trin, der kræves til installation og konfiguration af Odoo 12 til produktion ved hjælp af Git source og Python virtuelle miljø på et Ubuntu 18.04-system.
Sådan implementeres rocket.chat på ubuntu 18.04
Rocket.Chat er en open source-kommunikationsplatform, et selvhost Slack-alternativ. Rocket.Chat er en perfekt løsning for virksomheder og lokalsamfund, der ønsker at være vært for deres eget chat-system.
Sådan implementeres det vigtigste på ubuntu 18.04
Mattermost bringer al din teamkommunikation ét sted og giver forskellige funktioner, herunder fildeling, en-til-en- og gruppemeddelelse, brugerdefinerede emoji, videoopkald og mere.