Android

Jak wdrożyć odoo 11 na Ubuntu 18.04

How to install Odoo 11 on Ubuntu 18.04

How to install Odoo 11 on Ubuntu 18.04

Spisu treści:

Anonim

Odoo to najpopularniejsze oprogramowanie biznesowe typu „wszystko w jednym” na świecie. Oferuje szereg aplikacji biznesowych, w tym CRM, strony internetowe, handel elektroniczny, fakturowanie, księgowość, produkcję, magazyn, zarządzanie projektami, inwentaryzację i wiele innych, wszystkie bezproblemowo zintegrowane.

Istnieje kilka sposobów instalacji Odoo w zależności od wymaganego przypadku użycia. Najłatwiejszym i najszybszym sposobem na zainstalowanie Odoo jest użycie ich oficjalnych repozytoriów APT.

Ten przewodnik obejmuje kroki niezbędne do zainstalowania i skonfigurowania Odoo do produkcji przy użyciu źródła Git i wirtualnego środowiska Python w systemie Ubuntu 18.04.

Zanim zaczniesz

Zaloguj się do komputera Ubuntu jako użytkownik sudo i zaktualizuj system do najnowszych pakietów:

sudo apt update && sudo apt upgrade

Zainstaluj Git, Pip, Node.js i narzędzia wymagane do zbudowania zależności 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

Utwórz użytkownika Odoo

Utwórz nowego użytkownika systemu i grupę za pomocą katalogu domowego /opt/odoo , który uruchomi usługę Odoo.

sudo useradd -m -d /opt/odoo -U -r -s /bin/bash odoo Możesz nazwać użytkownika, jak chcesz, po prostu upewnij się, że utworzyłeś użytkownika postgres o tej samej nazwie.

Zainstaluj i skonfiguruj PostgreSQL

Zainstaluj pakiet PostgreSQL z domyślnych repozytoriów Ubuntu:

sudo apt install postgresql

Po zakończeniu instalacji utwórz użytkownika PostgreSQL o takiej samej nazwie jak poprzednio utworzony użytkownik systemu, w naszym przypadku odoo :

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

Zainstaluj Wkhtmltopdf

Pakiet wkhtmltox zapewnia zestaw narzędzi wiersza poleceń o otwartym kodzie źródłowym, które mogą renderować HTML do formatu PDF i różne formaty obrazów. Aby wydrukować raporty PDF, potrzebujesz narzędzia wkhtmltopdf . Zalecana wersja dla Odoo to 0.12.1 która nie jest dostępna w oficjalnych repozytoriach Ubuntu 18.04.

Pobierz pakiet za pomocą następującego polecenia wget:

wget

Po zakończeniu pobierania zainstaluj pakiet, wpisując:

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

Zainstaluj i skonfiguruj Odoo

Zainstalujemy Odoo z repozytorium GitHub w izolowanym środowisku wirtualnym Python, abyśmy mogli mieć większą kontrolę nad wersjami i aktualizacjami.

Przed rozpoczęciem procesu instalacji upewnij się, że przełączyłeś się na użytkownika odoo .

sudo su - odoo

Aby potwierdzić, że jesteś zalogowany jako użytkownik odoo , możesz użyć następującego polecenia:

whoami

Teraz możemy zacząć od procesu instalacji. Najpierw sklonuj odoo z repozytorium GitHub:

git clone https://www.github.com/odoo/odoo --depth 1 --branch 11.0 /opt/odoo/odoo11

  • Jeśli chcesz zainstalować inną wersję Odoo, po prostu zmień numer wersji po --branch --branch. Możesz nazwać katalog tak, jak chcesz, na przykład zamiast odoo11 możesz użyć nazwy swojej domeny.

Aby utworzyć nowe środowisko wirtualne dla instancji Odoo 11:

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

aktywuj środowisko za pomocą następującego polecenia:

source odoo11-venv/bin/activate

i zainstaluj wszystkie wymagane moduły Pythona za pomocą pip3:

pip3 install wheel pip3 install -r odoo11/requirements.txt

pip3 to narzędzie do instalowania i zarządzania pakietami Python.

Po zakończeniu instalacji wyłącz środowisko i przełącz się z powrotem na użytkownika sudo za pomocą następujących poleceń:

deactivate

exit

sudo mkdir /opt/odoo/odoo11-custom-addons sudo chown odoo: /opt/odoo/odoo11-custom-addons

Następnie musimy utworzyć plik konfiguracyjny, możemy albo utworzyć nowy od zera, albo skopiować dołączony plik konfiguracyjny:

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

Otwórz plik i edytuj go w następujący sposób:

/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 Nie zapomnij zmienić my_admin_passwd na coś bezpieczniejszego i dostosuj addons_path jeśli używasz niestandardowych modułów.

Utwórz plik jednostki systemowej

Aby uruchomić odoo jako usługę, odoo11.service plik jednostki odoo11.service w katalogu /etc/systemd/system/ o następującej treści:

/etc/systemd/system/odoo11.service

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

Powiadom systemd, że utworzyliśmy nowy plik jednostki i uruchom usługę Odoo, wykonując:

sudo systemctl daemon-reload sudo systemctl start odoo11

Możesz sprawdzić status usługi za pomocą następującego polecenia:

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

a jeśli nie ma błędów, możesz włączyć automatyczne uruchamianie usługi Odoo podczas uruchamiania:

sudo systemctl enable odoo11

sudo journalctl -u odoo11

Przetestuj instalację

Otwórz przeglądarkę i wpisz: http://:8069 http://:8069

Zakładając, że instalacja się powiodła, pojawi się ekran podobny do następującego:

Skonfiguruj Nginx jako proxy zakończenia SSL

  • Masz nazwę domeny wskazującą adres IP twojego publicznego serwera. W tym samouczku użyjemy example.com . Masz zainstalowanego Nginx, postępując zgodnie z tymi instrukcjami. Masz zainstalowany certyfikat SSL dla swojej domeny. Możesz zainstalować bezpłatny certyfikat Let's Encrypt SSL postępując zgodnie z tymi instrukcjami.

Domyślny serwer internetowy Odoo obsługuje ruch przez HTTP. Aby nasze wdrożenie Odoo było bezpieczniejsze, skonfigurujemy Nginx jako serwer proxy terminacji SSL, który będzie obsługiwał ruch przez

Serwer proxy zakończenia SSL to serwer proxy, który obsługuje szyfrowanie / deszyfrowanie SSL. Oznacza to, że nasz serwer proxy terminacji (Nginx) będzie obsługiwał i deszyfrował przychodzące połączenia TLS (HTTPS) i przekaże niezaszyfrowane żądania do naszej usługi wewnętrznej (Odoo), aby ruch między Nginx a Odoo nie był szyfrowany (HTTP).

Musimy powiedzieć Odoo, że użyjemy proxy, otworzymy plik konfiguracyjny i dodamy następujący wiersz:

/etc/odoo11.conf

proxy_mode = True

Uruchom ponownie usługę Odoo, aby zmiany odniosły skutek:

sudo systemctl restart odoo11

Używanie Nginx jako proxy daje nam kilka korzyści. W tym przykładzie skonfigurujemy Zakończenie SSL, przekierowanie HTTP na HTTPS, przekierowanie z WWW na inne niż WWW, buforowanie plików statycznych i włączenie kompresji GZip.

/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; } Nie zapomnij zastąpić example.com domeną Odoo i ustawić prawidłową ścieżkę do plików certyfikatów SSL. Fragmenty użyte w tej konfiguracji są tworzone w tym przewodniku.

Po zakończeniu uruchom ponownie usługę Nginx za pomocą:

sudo systemctl restart nginx

Zmień interfejs powiązania

Ten krok jest opcjonalny, ale stanowi dobrą praktykę bezpieczeństwa. Domyślnie serwer Odoo nasłuchuje na porcie 8069 na wszystkich interfejsach, więc jeśli chcesz wyłączyć bezpośredni dostęp do instancji Odoo, możesz albo zablokować port 8069 dla wszystkich publicznych interfejsów, albo zmusić Odoo do nasłuchiwania tylko na lokalnym interfejsie.

W tym przewodniku zmusimy Odoo do nasłuchiwania tylko w wersji 127.0.0.1 , otwórz konfigurację Odoo dodaj następujące dwie linie na końcu pliku:

/etc/odoo11.conf

xmlrpc_interface = 127.0.0.1 netrpc_interface = 127.0.0.1

Zapisz plik konfiguracyjny i zrestartuj serwer Odoo, aby zmiany odniosły skutek:

sudo systemctl restart odoo

Włącz wieloprocesowość

Domyślnie Odoo działa w trybie wielowątkowym. W przypadku wdrożeń produkcyjnych zaleca się przejście na serwer wieloprocesowy, ponieważ zwiększa stabilność i lepiej wykorzystuje zasoby systemowe. Aby włączyć przetwarzanie wieloprocesowe, musimy edytować konfigurację Odoo i ustawić niezerową liczbę procesów roboczych.

Liczbę pracowników oblicza się na podstawie liczby rdzeni procesora w systemie i dostępnej pamięci RAM.

Zgodnie z oficjalną dokumentacją Odoo w celu obliczenia liczby pracowników i wymaganego rozmiaru pamięci RAM zastosujemy następujące formuły i założenia:

Obliczanie liczby pracowników

  • teoretyczna maksymalna liczba pracowników = (system_cpus * 2) + 11 pracowników może obsłużyć ~ = 6 równoczesnych użytkowników Robotnicy wymagają również procesora

Obliczanie wielkości pamięci RAM

  • Rozważymy, że 20% wszystkich żądań to ciężkie żądania, a 80% mniejszych. Ciężkie żądania zużywają około 1 GB pamięci RAM, a lżejsze używają około 150 MB RAM Potrzebna pamięć RAM = liczba_pracowników * ((light_worker_ratio * light_worker_ram_estimation) + (heavy_worker_ratio * heavy_worker_ram_estimation))

grep -c ^processor /proc/cpuinfo

Załóżmy, że mamy system z 4 rdzeniami procesora, 8 GB pamięci RAM i 30 równoczesnymi użytkownikami Odoo.

  • 30 users / 6 = **5** (5 to teoretyczna liczba potrzebnych pracowników) (4 * 2) + 1 = **9** (9 to teoretyczna maksymalna liczba pracowników)

W oparciu o powyższe obliczenia możemy użyć 5 pracowników + 1 pracownika dla pracownika cron, który łącznie wynosi 6 pracowników.

Oblicz zużycie pamięci RAM na podstawie liczby pracowników:

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

Powyższe obliczenia pokazują nam, że nasza instalacja Odoo będzie wymagała około 2 GB pamięci RAM.

Aby przełączyć do trybu wieloprocesowego, otwórz plik konfiguracyjny i dołącz następujące wiersze:

/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

Uruchom ponownie usługę Odoo, aby zmiany odniosły skutek:

sudo systemctl restart odoo11

Reszta zasobów systemowych zostanie wykorzystana przez inne usługi działające na naszym komputerze. W tym przewodniku zainstalowaliśmy Odoo wraz z PostgreSQL i Nginx na tym samym serwerze, a w zależności od konfiguracji możesz mieć również inne usługi działające na twoim serwerze.

Wniosek

Otóż ​​to! Ten samouczek przeprowadził Cię przez proces instalacji Odoo 11 na Ubuntu 18.04 w środowisku wirtualnym Python przy użyciu Nginx jako odwrotnego proxy. Nauczyłeś się również, jak włączyć wieloprocesowość i optymalizować Odoo dla środowiska produkcyjnego. Możesz także sprawdzić nasz samouczek dotyczący tworzenia automatycznych codziennych kopii zapasowych baz danych Odoo.

ubuntu odoo postgresql python pip nginx proxy ssl