Android

Jak zainstalować Odoo 13 na Ubuntu 18.04

How to Install Odoo 13 on Ubuntu 18.04

How to Install Odoo 13 on Ubuntu 18.04

Spisu treści:

Anonim

Odoo to popularny pakiet aplikacji biznesowych typu open source. Oferuje szereg aplikacji, w tym CRM, e-Commerce, kreator stron internetowych, fakturowanie, księgowość, produkcję, magazyn, zarządzanie projektami, inwentaryzację i wiele innych, wszystkie bezproblemowo zintegrowane.

Odoo można zainstalować na wiele sposobów, w zależności od przypadku użycia i dostępnych technologii. Najłatwiejszym i najszybszym sposobem na zainstalowanie Odoo jest użycie oficjalnych repozytoriów Odoo APT.

Instalowanie Odoo w środowisku wirtualnym lub wdrażanie jako kontener Docker pozwala na większą kontrolę nad konfiguracją systemu i uruchamianie wielu wersji Odoo w tym samym systemie.

W tym przewodniku przeprowadzimy Cię przez proces instalowania i wdrażania Odoo 13 w środowisku wirtualnym Python na Ubuntu 18.04. Pobieramy Odoo z ich repozytorium Github i używamy Nginx jako odwrotnego proxy.

Instalowanie wymagań wstępnych

Zaloguj się do swojego Ubuntu jako użytkownik sudo i zaktualizuj pamięć podręczną Apt:

sudo apt update

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

Tworzenie użytkownika systemu

Utwórz użytkownika systemu, który uruchomi Odoo, o nazwie odoo13 z katalogiem domowym /opt/odoo13 :

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

Możesz ustawić dowolną nazwę użytkownika, o ile utworzysz użytkownika PostgreSQL o tej samej nazwie.

Instalowanie i konfigurowanie PostgreSQL

Odoo używa PostgreSQL jako zaplecza bazy danych. Aby zainstalować PostgreSQL, uruchom następujące polecenie:

sudo apt install postgresql

Po zakończeniu instalacji utwórz użytkownika PostgreSQL o tej samej nazwie co poprzednio utworzony użytkownik systemu, w naszym przypadku jest to odoo13 :

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

Instalowanie Wkhtmltopdf

Pakiet wkhtmltox zawiera zestaw narzędzi wiersza polecenia typu open source, które mogą renderować HTML do formatu PDF i różnych formatów obrazów. Aby móc drukować raporty PDF, musisz zainstalować narzędzie wkhtmltopdf . Zalecana wersja dla Odoo to 0.12.5 , która nie jest dostępna w domyślnych 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.5-1.bionic_amd64.deb

Instalacja i konfiguracja Odoo 13

Jak wspomniano wcześniej, zainstalujemy Odoo ze źródła w izolowanym środowisku wirtualnym Python.

Najpierw przejdź do użytkownika „odoo13”:

sudo su - odoo13

Sklonuj kod źródłowy Odoo 13 z GitHub:

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

Po zakończeniu pobierania utwórz nowe środowisko wirtualne Python dla Odoo:

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

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

source odoo-venv/bin/activate

Zainstaluj wszystkie wymagane moduły Python za pomocą pip3:

pip3 install wheel pip3 install -r odoo/requirements.txt Jeśli podczas instalacji wystąpi błąd kompilacji, upewnij się, że zostały zainstalowane wszystkie wymagane zależności wymienione w sekcji Installing Prerequisites instalacji.

Po zakończeniu dezaktywuj środowisko, wpisując:

deactivate

Stworzymy nowy katalog, w którym będą przechowywane dodatki innych firm.

mkdir /opt/odoo13/odoo-custom-addons

Później dodamy ten katalog do parametru addons_path . Ten parametr definiuje listę katalogów, w których Odoo szuka modułów.

Wróć do użytkownika sudo:

exit

Utwórz plik konfiguracyjny o następującej treści:

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 Nie zapomnij zmienić my_admin_passwd na coś bezpieczniejszego.

Tworzenie pliku jednostki systemowej

Otwórz edytor tekstu i utwórz plik jednostki usługowej o nazwie odoo13.service o następującej treści:

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

Powiadom systemd, że istnieje nowy plik jednostki:

sudo systemctl daemon-reload

Uruchom usługę Odoo i umożliwiłem jej uruchomienie podczas uruchamiania, uruchamiając:

sudo systemctl enable --now odoo13

Sprawdź status usługi:

sudo systemctl status odoo13

Dane wyjściowe powinny wyglądać mniej więcej tak, jak poniżej, wskazując, że usługa Odoo jest aktywna i działa.

● 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

Aby zobaczyć wiadomości zarejestrowane przez usługę Odoo, użyj poniższego polecenia:

sudo journalctl -u odoo13

Testowanie instalacji

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:

Konfigurowanie Nginx jako serwera proxy terminacji SSL

Domyślny serwer internetowy Odoo obsługuje ruch przez HTTP. Aby 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 proxy zakończenia (Nginx) przetworzy i odszyfruje przychodzące połączenia TLS (HTTPS) oraz przekaże niezaszyfrowane żądania do usługi wewnętrznej (Odoo). Ruch między Nginx a Odoo nie będzie szyfrowany (HTTP).

Korzystanie z odwrotnego serwera proxy zapewnia wiele korzyści, takich jak równoważenie obciążenia, zakańczanie protokołu SSL, buforowanie, kompresja, serwowanie treści statycznych i inne.

Przed kontynuowaniem tej sekcji upewnij się, że zostały spełnione następujące wymagania wstępne:

  • Nazwa domeny wskazująca adres IP twojego publicznego serwera. Będziemy używać example.com Zainstalowany.Nginx.SSL certyfikat dla Twojej domeny. Możesz zainstalować bezpłatny certyfikat Let's Encrypt SSL.

Otwórz edytor tekstu i utwórz / edytuj blok serwera domeny:

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

Poniższa konfiguracja konfiguruje 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:

sudo systemctl restart nginx

Następnie musimy powiedzieć Odoo, aby używało proxy. Aby to zrobić, otwórz plik konfiguracyjny i dodaj następujący wiersz:

/etc/odoo13.conf

proxy_mode = True

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

sudo systemctl restart odoo13

W tym momencie konfigurowany jest zwrotny serwer proxy i można uzyskać dostęp do instancji Odoo pod https://example.com : https://example.com

Zmiana interfejsu wiązania

Ten krok jest opcjonalny, ale stanowi dobrą praktykę bezpieczeństwa.

Domyślnie serwer Odoo nasłuchuje na porcie 8069 na wszystkich interfejsach. Aby wyłączyć bezpośredni dostęp do instancji Odoo, możesz zablokować port 8069 dla wszystkich publicznych interfejsów lub zmusić Odoo do nasłuchiwania tylko na interfejsie lokalnym.

Skonfigurujemy Odoo do nasłuchiwania tylko na 127.0.0.1 . Otwórz konfigurację, dodaj następujące dwa wiersze na końcu pliku:

/etc/odoo13.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 odoo13

Włączanie wielu procesów

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, musisz 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, można użyć następujących wzorów i założeń:

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 Pracownicy koronek również wymagają procesora

Obliczanie wielkości pamięci RAM

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

grep -c ^processor /proc/cpuinfo

Załóżmy, że masz 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żna użyć 5 pracowników + 1 pracownik dla pracownika cron, czyli łącznie 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

Obliczenia pokazują, że instalacja Odoo będzie wymagała około 2 GB pamięci RAM.

Aby przełączyć na tryb wieloprocesowy, otwórz plik konfiguracyjny i dołącz obliczone wartości:

/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

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

sudo systemctl restart odoo13

Reszta zasobów systemowych będzie używana przez inne usługi działające w tym systemie. W tym przewodniku zainstalowaliśmy Odoo wraz z PostgreSQL i Nginx na tym samym serwerze. W zależności od konfiguracji możesz mieć również inne usługi działające na twoim serwerze.

Wniosek

Ten samouczek przeprowadził Cię przez proces instalacji Odoo 13 na Ubuntu 18.04 w środowisku wirtualnym Python przy użyciu Nginx jako odwrotnego proxy. Pokazaliśmy również, jak włączyć wieloprocesowość i zoptymalizować Odoo pod kątem środowiska produkcyjnego.

Możesz także sprawdzić nasz poradnik dotyczący tworzenia automatycznych codziennych kopii zapasowych baz danych Odoo.

ubuntu odoo postgresql python pip nginx proxy ssl