1. Install Odoo 12 on Ubuntu 18.04
Spisu treści:
- Zanim zaczniesz
- Utwórz użytkownika Odoo
- Zainstaluj i skonfiguruj PostgreSQL
- Zainstaluj Wkhtmltopdf
- Zainstaluj i skonfiguruj Odoo
- Utwórz plik jednostki systemowej
- Przetestuj instalację
- Skonfiguruj Nginx jako serwer proxy terminacji SSL
- Zmień interfejs powiązania
- Włącz wieloprocesowość
- Wniosek
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.
Odoo można zainstalować na kilka różnych sposobów. Najłatwiejszym i najszybszym sposobem na zainstalowanie Odoo jest użycie ich oficjalnych repozytoriów APT.
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.
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 dla Odoo o nazwie
odoo12
z katalogiem
/opt/odoo12
za pomocą następującego polecenia:
sudo useradd -m -d /opt/odoo12 -U -r -s /bin/bash odoo12
Możesz używać dowolnej nazwy dla swojego użytkownika Odoo, dopóki tworzysz użytkownika PostgreSQL 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 jest to
odoo12
:
sudo su - postgres -c "createuser -s odoo12"
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.
Przed rozpoczęciem procesu instalacji zmień użytkownika na „odoo12”:
sudo su - odoo12
Zacznij od klonowania kodu źródłowego Odoo 12 z repozytorium GitHub:
git clone https://www.github.com/odoo/odoo --depth 1 --branch 12.0 /opt/odoo12/odoo
Po pobraniu kodu źródłowego utwórz nowe środowisko wirtualne Python dla instalacji Odoo 12:
cd /opt/odoo12
python3 -m venv odoo-venv
Następnie 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ą jakiekolwiek błędy kompilacji, upewnij się, że zainstalowałeś wszystkie wymagane zależności wymienione w sekcji
Before you begin
.
Dezaktywuj środowisko za pomocą następującego polecenia:
deactivate
Utwórz nowy katalog dla niestandardowych dodatków:
mkdir /opt/odoo12/odoo-custom-addons
Wróć do użytkownika sudo:
exit
Następnie utwórz plik konfiguracyjny, kopiując dołączony przykładowy plik konfiguracyjny:
sudo cp /opt/odoo12/odoo/debian/odoo.conf /etc/odoo12.conf
Otwórz plik i edytuj go w następujący sposób:
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
Nie zapomnij zmienić
my_admin_passwd
na coś bezpieczniejszego.
Utwórz plik jednostki systemowej
Aby uruchomić Odoo jako usługę, musimy utworzyć plik jednostki serwisowej w katalogu
/etc/systemd/system/
.
Otwórz edytor tekstu i wklej następującą konfigurację:
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
Powiadom systemd, że istnieje nowy plik jednostki i uruchom usługę Odoo, uruchamiając:
sudo systemctl daemon-reload
sudo systemctl start odoo12
Sprawdź status usługi za pomocą następującego polecenia:
sudo systemctl status odoo12
Dane wyjściowe powinny wyglądać mniej więcej tak, jak poniżej, wskazując, że usługa Odoo jest aktywna i działa.
* 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
Włącz usługę Odoo, aby była automatycznie uruchamiana podczas rozruchu:
sudo systemctl enable odoo12
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 serwer proxy terminacji SSL
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. W tym samouczku wykorzystamy
example.comZainstalowany.Nginx.SSL certyfikat dla Twojej domeny. Możesz zainstalować bezpłatny certyfikat Let's Encrypt SSL.
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).
Korzystanie z odwrotnego proxy daje wiele korzyści, takich jak równoważenie obciążenia, zakończenie SSL, buforowanie, kompresja, serwowanie treści statycznych i wiele innych.
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.
Otwórz edytor tekstu i utwórz następujący plik:
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; }
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
Następnie musimy powiedzieć Odoo, że będziemy używać proxy. Aby to zrobić, otwórz plik konfiguracyjny i dodaj następujący wiersz:
/etc/odoo12.conf
proxy_mode = True
Uruchom ponownie usługę Odoo, aby zmiany odniosły skutek:
sudo systemctl restart odoo12
W tym momencie serwer jest skonfigurowany i możesz uzyskać dostęp do instancji Odoo pod
https://example.com
:
https://example.com
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. Jeśli chcesz 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.
W tym przewodniku skonfigurujemy Odoo, aby nasłuchiwał tylko w wersji
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łą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 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 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/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
Uruchom ponownie usługę Odoo, aby zmiany odniosły skutek:
sudo systemctl restart odoo12
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, a 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 12 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 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ć Rocket.chat na Ubuntu 18.04
Rocket.Chat to otwarta platforma komunikacyjna dla zespołu, będąca hostowaną alternatywą dla Slacka. Rocket.Chat to idealne rozwiązanie dla firm i społeczności, które chcą obsługiwać własny system czatów.
Jak wdrożyć matermost na Ubuntu 18.04
Mattermost przenosi całą komunikację Twojego zespołu w jedno miejsce i zapewnia różne funkcje, w tym udostępnianie plików, wiadomości jeden na jednego i grupowe, niestandardowe emoji, rozmowy wideo i wiele innych.







