How to Install Odoo 13 on Ubuntu 18.04
Spisu treści:
- Instalowanie wymagań wstępnych
- Tworzenie użytkownika systemu
- Instalowanie i konfigurowanie PostgreSQL
- Instalowanie Wkhtmltopdf
- Instalacja i konfiguracja Odoo 13
- Tworzenie pliku jednostki systemowej
- Testowanie instalacji
- Konfigurowanie Nginx jako serwera proxy terminacji SSL
- Zmiana interfejsu wiązania
- Włączanie wielu procesów
- Wniosek
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:
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.comZainstalowany.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:
xmlrpc_interface = 127.0.0.1 netrpc_interface = 127.0.0.1
Zapisz plik konfiguracyjny i zrestartuj serwer Odoo, aby zmiany odniosły skutek:
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 sslJak wdrożyć odoo 11 na Ubuntu 18.04
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.
Jak wdrożyć odoo 12 na Ubuntu 18.04
Ten samouczek obejmuje kroki wymagane do zainstalowania i skonfigurowania Odoo 12 do produkcji przy użyciu źródła Git i wirtualnego środowiska Python w systemie Ubuntu 18.04.
Jak zainstalować odoo 11 na Ubuntu 16.04
Odoo jest jednym z najpopularniejszych programów biznesowych na świecie. Ten przewodnik opisuje kroki niezbędne do zainstalowania i skonfigurowania Odoo przy użyciu źródła Git i wirtualnego środowiska Python na Ubuntu 16.04







