Android

Как развернуть odoo 11 на Ubuntu 18.04

How to install Odoo 11 on Ubuntu 18.04

How to install Odoo 11 on Ubuntu 18.04

Оглавление:

Anonim

Odoo является самым популярным универсальным программным обеспечением в мире. Он предлагает широкий спектр бизнес-приложений, включая CRM, веб-сайт, электронную коммерцию, биллинг, бухгалтерию, производство, склад, управление проектами, инвентарь и многое другое, и все это легко интегрируется.

Есть несколько способов установить Odoo в зависимости от необходимого варианта использования. Самый простой и быстрый способ установить Odoo - использовать их официальные репозитории APT.

Это руководство охватывает шаги, необходимые для установки и настройки Odoo для работы с использованием исходного кода Git и виртуальной среды Python в системе Ubuntu 18.04.

Прежде чем вы начнете

Войдите в систему Ubuntu как пользователь sudo и обновите систему до последних пакетов:

sudo apt update && sudo apt upgrade

Установите Git, Pip, Node.js и инструменты, необходимые для построения зависимостей 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

Создать пользователя Odoo

Создайте нового системного пользователя и группу с домашним каталогом /opt/odoo который будет запускать службу Odoo.

sudo useradd -m -d /opt/odoo -U -r -s /bin/bash odoo Вы можете назвать пользователя как угодно, просто убедитесь, что вы создали пользователя postgres с тем же именем.

Установите и настройте PostgreSQL

Установите пакет PostgreSQL из репозиториев Ubuntu по умолчанию:

sudo apt install postgresql

После завершения установки создайте пользователя PostgreSQL с тем же именем, что и у ранее созданного системного пользователя, в нашем случае odoo :

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

Установить Wkhtmltopdf

Пакет wkhtmltox предоставляет набор инструментов командной строки с открытым исходным кодом, которые могут отображать HTML в PDF и различных форматах изображений. Для печати отчетов в формате PDF вам понадобится инструмент wkhtmltopdf . Рекомендуемая версия для Odoo - 0.12.1 которая недоступна в официальных репозиториях Ubuntu 18.04.

Загрузите пакет с помощью следующей команды wget:

wget

После завершения загрузки установите пакет, набрав:

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

Установите и настройте Odoo

Мы установим Odoo из репозитория GitHub в изолированной виртуальной среде Python, чтобы иметь больший контроль над версиями и обновлениями.

Перед началом процесса установки убедитесь, что вы переключились на пользователя odoo .

sudo su - odoo

Чтобы подтвердить, что вы вошли в систему как пользователь odoo вы можете использовать следующую команду:

whoami

Теперь мы можем начать с процесса установки. Сначала клонируйте ODOO из репозитория GitHub:

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

  • Если вы хотите установить другую версию Odoo, просто измените номер версии после --branch --branch. Вы можете назвать каталог по --branch усмотрению, например, вместо odoo11 вы можете использовать имя вашего домена.

Чтобы создать новую виртуальную среду для экземпляра Odoo 11, выполните:

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

активировать среду с помощью следующей команды:

source odoo11-venv/bin/activate

и установите все необходимые модули Python с pip3:

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

pip3 - это инструмент для установки и управления пакетами Python.

После завершения установки отключите среду и вернитесь к своему пользователю sudo с помощью следующих команд:

deactivate

exit

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

Далее нам нужно создать файл конфигурации, мы можем либо создать новый с нуля, либо скопировать включенный файл конфигурации:

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

Откройте файл и отредактируйте его следующим образом:

/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 Не забудьте изменить my_admin_passwd на что-то более безопасное и настроить addons_path если вы используете пользовательские модули.

Создать системный файл модуля

Чтобы запустить odoo как сервис, мы создадим odoo11.service модуля odoo11.service каталоге /etc/systemd/system/ со следующим содержимым:

/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

Сообщите systemd, что мы создали новый файл модуля, и запустите службу Odoo, выполнив:

sudo systemctl daemon-reload sudo systemctl start odoo11

Вы можете проверить статус сервиса с помощью следующей команды:

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

и если ошибок нет, вы можете включить автоматический запуск службы Odoo во время загрузки:

sudo systemctl enable odoo11

sudo journalctl -u odoo11

Проверьте установку

Откройте браузер и введите: http://:8069 http://:8069

Если установка прошла успешно, появится экран, подобный следующему:

Настройте Nginx как прокси-сервер завершения SSL

  • У вас есть доменное имя, указывающее на IP вашего публичного сервера. В этом руководстве мы будем использовать example.com . У вас установлен Nginx, следуя этим инструкциям. У вас установлен сертификат SSL для вашего домена. Вы можете установить бесплатный SSL-сертификат Let's Encrypt, следуя этим инструкциям.

Веб-сервер Odoo по умолчанию обслуживает трафик по HTTP. Чтобы сделать наше развертывание Odoo более безопасным, мы настроим Nginx как прокси-сервер завершения SSL, который будет обслуживать трафик по

Терминальный прокси-сервер SSL - это прокси-сервер, который выполняет шифрование / дешифрование SSL. Это означает, что наш оконечный прокси (Nginx) будет обрабатывать и дешифровать входящие соединения TLS (HTTPS) и передавать незашифрованные запросы нашей внутренней службе (Odoo), поэтому трафик между Nginx и Odoo не будет зашифрован (HTTP).

Нам нужно сообщить Odoo, что мы будем использовать прокси, открыть файл конфигурации и добавить следующую строку:

/etc/odoo11.conf

proxy_mode = True

Перезапустите сервис Odoo, чтобы изменения вступили в силу:

sudo systemctl restart odoo11

Использование Nginx в качестве прокси дает нам несколько преимуществ. В этом примере мы настроим SSL-завершение, перенаправление с HTTP на HTTPS, перенаправление с WWW на не WWW, кэшируем статические файлы и включим сжатие 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; } Не забудьте заменить example.com доменом Odoo и указать правильный путь к файлам SSL-сертификатов. Фрагменты, используемые в этой конфигурации, созданы в этом руководстве.

Как только вы закончите, перезапустите сервис Nginx с:

sudo systemctl restart nginx

Изменить интерфейс привязки

Этот шаг не является обязательным, но это хорошая практика безопасности. По умолчанию сервер Odoo прослушивает порт 8069 на всех интерфейсах, поэтому, если вы хотите отключить прямой доступ к вашему экземпляру Odoo, вы можете либо заблокировать порт 8069 для всех общедоступных интерфейсов, либо заставить Odoo прослушивать только на локальном интерфейсе.

В этом руководстве мы заставим Odoo прослушивать только 127.0.0.1 , откройте конфигурацию Odoo и добавьте следующие две строки в конец файла:

/etc/odoo11.conf

xmlrpc_interface = 127.0.0.1 netrpc_interface = 127.0.0.1

Сохраните файл конфигурации и перезапустите сервер Odoo, чтобы изменения вступили в силу:

sudo systemctl restart odoo

Включить многопроцессорность

По умолчанию Odoo работает в режиме многопоточности. Для производственных развертываний рекомендуется переключиться на многопроцессорный сервер, так как это повышает стабильность и улучшает использование системных ресурсов. Чтобы включить многопроцессорность, нам нужно отредактировать конфигурацию Odoo и установить ненулевое количество рабочих процессов.

Количество рабочих рассчитывается на основе количества ядер ЦП в системе и доступной оперативной памяти.

В соответствии с официальной документацией Odoo для расчета количества рабочих и требуемого объема оперативной памяти мы будем использовать следующие формулы и предположения:

Расчет рабочего числа

  • теоретическое максимальное количество рабочих = (system_cpus * 2) + 11 рабочих могут обслуживать ~ = 6 одновременно работающих пользователей. Для рабочих также требуется процессор

Расчет объема оперативной памяти

  • Мы будем считать, что 20% всех запросов - это тяжелые запросы, а 80% - более легкие. Тяжелые запросы используют около 1 ГБ ОЗУ, а более легкие - около 150 МБ ОЗУ. Необходимая ОЗУ = number_of_workers * ((light_worker_ratio * light_worker_ram_estima) + (heavy_worker_ratio * heavy_worker_ram_esvaluation))

grep -c ^processor /proc/cpuinfo

Допустим, у нас есть система с 4 ядрами процессора, 8 ГБ оперативной памяти и 30 одновременными пользователями Odoo.

  • 30 users / 6 = **5** (5 - теоретическое количество необходимых рабочих) (4 * 2) + 1 = **9** (9 - теоретическое максимальное количество рабочих)

На основании приведенного выше расчета мы можем использовать 5 работников + 1 работника для работника cron, что составляет в общей сложности 6 работников.

Рассчитать потребление оперативной памяти на основе количества рабочих:

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

Приведенные выше расчеты показывают, что для установки Odoo потребуется около 2 ГБ ОЗУ.

Чтобы перейти в многопроцессорный режим, откройте файл конфигурации и добавьте следующие строки:

/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

Перезапустите сервис Odoo, чтобы изменения вступили в силу:

sudo systemctl restart odoo11

Остальные системные ресурсы будут использоваться другими службами, работающими на нашей машине. В этом руководстве мы установили Odoo вместе с PostgreSQL и Nginx на одном сервере, и в зависимости от ваших настроек на вашем сервере могут работать другие службы.

Вывод

Это оно! Из этого туториала вы узнали, как установить Odoo 11 в Ubuntu 18.04 в виртуальной среде Python, используя Nginx в качестве обратного прокси-сервера. Вы также узнали, как включить многопроцессорную обработку и оптимизировать Odoo для производственной среды. Вы также можете проверить наш учебник о том, как создавать автоматические ежедневные резервные копии ваших баз данных Odoo.

Ubuntu Odoo Postgresql Python Pip Nginx прокси SSL