How to Install Odoo 12 On Ubuntu 18.10
Оглавление:
- Прежде чем вы начнете
- Создать пользователя Odoo
- Установите и настройте PostgreSQL
- Установить Wkhtmltopdf
- Установите и настройте Odoo
- Создать системный файл модуля
- Проверьте установку
- Настройте Nginx как прокси-сервер завершения SSL
- Изменить интерфейс привязки
- Включить многопроцессорность
- Вывод
Odoo является самым популярным универсальным программным обеспечением в мире. Он предлагает широкий спектр бизнес-приложений, включая CRM, веб-сайт, электронную коммерцию, биллинг, бухгалтерию, производство, склад, управление проектами, инвентарь и многое другое, и все это легко интегрируется.
Odoo может быть установлен несколькими различными способами. Самый простой и быстрый способ установить Odoo - использовать их официальные репозитории APT.
В этом руководстве рассматриваются шаги, необходимые для установки и настройки Odoo 12 для работы с использованием исходного кода 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
Создайте нового системного пользователя для Odoo с именем
odoo12
домашнем каталоге
/opt/odoo12
используя следующую команду:
sudo useradd -m -d /opt/odoo12 -U -r -s /bin/bash odoo12
Вы можете использовать любое имя для своего пользователя Odoo, пока вы создаете пользователя PostgreSQL с тем же именем.
Установите и настройте PostgreSQL
Установите пакет PostgreSQL из репозиториев Ubuntu по умолчанию:
sudo apt install postgresql
После завершения установки создайте пользователя PostgreSQL с тем же именем, что и у ранее созданного системного пользователя, в нашем случае это
odoo12
:
sudo su - postgres -c "createuser -s odoo12"
Установить 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.
Перед началом процесса установки перейдите к пользователю «odoo12»:
sudo su - odoo12
Начните с клонирования исходного кода Odoo 12 из репозитория GitHub:
git clone https://www.github.com/odoo/odoo --depth 1 --branch 12.0 /opt/odoo12/odoo
После загрузки исходного кода создайте новую виртуальную среду Python для установки Odoo 12:
cd /opt/odoo12
python3 -m venv odoo-venv
Затем активируйте среду с помощью следующей команды:
source odoo-venv/bin/activate
Установите все необходимые модули Python с pip3:
pip3 install wheel
pip3 install -r odoo/requirements.txt
Если вы обнаружите какие-либо ошибки компиляции во время установки, убедитесь, что вы установили все необходимые зависимости, перечисленные в разделе «
Before you begin
».
Деактивируйте среду с помощью следующей команды:
deactivate
Создайте новый каталог для пользовательских дополнений:
mkdir /opt/odoo12/odoo-custom-addons
Вернитесь к своему пользователю sudo:
exit
Затем создайте файл конфигурации, скопировав включенный образец файла конфигурации:
sudo cp /opt/odoo12/odoo/debian/odoo.conf /etc/odoo12.conf
Откройте файл и отредактируйте его следующим образом:
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
Не забудьте изменить
my_admin_passwd
на что-то более безопасное.
Создать системный файл модуля
Чтобы запустить Odoo как сервис, нам нужно создать файл сервисного модуля в каталоге
/etc/systemd/system/
.
Откройте текстовый редактор и вставьте следующую конфигурацию:
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
Сообщите systemd, что существует новый файл модуля, и запустите службу Odoo, выполнив:
sudo systemctl daemon-reload
sudo systemctl start odoo12
Проверьте статус службы с помощью следующей команды:
sudo systemctl status odoo12
Вывод должен выглядеть примерно так, как показано ниже, показывая, что служба Odoo активна и работает.
* 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
Включите сервис Odoo для автоматического запуска во время загрузки:
sudo systemctl enable odoo12
Проверьте установку
Откройте браузер и введите:
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).
Использование обратного прокси-сервера дает вам множество преимуществ, таких как балансировка нагрузки, прекращение SSL, кэширование, сжатие, обслуживание статического содержимого и многое другое.
В этом примере мы настроим SSL-завершение, перенаправление с HTTP на HTTPS, перенаправление с WWW на не WWW, кэшируем статические файлы и включим сжатие GZip.
Откройте ваш текстовый редактор и создайте следующий файл:
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; }
Не забудьте заменить example.com доменом Odoo и указать правильный путь к файлам SSL-сертификатов. Фрагменты, используемые в этой конфигурации, созданы в этом руководстве.
Как только вы закончите, перезапустите сервис Nginx с:
sudo systemctl restart nginx
Далее нам нужно сообщить Odoo, что мы будем использовать прокси. Для этого откройте файл конфигурации и добавьте следующую строку:
/etc/odoo12.conf
proxy_mode = True
Перезапустите сервис Odoo, чтобы изменения вступили в силу:
sudo systemctl restart odoo12
На этом этапе ваш сервер настроен, и вы можете получить доступ к своему экземпляру Odoo по адресу:
https://example.com
Изменить интерфейс привязки
Этот шаг не является обязательным, но это хорошая практика безопасности.
По умолчанию сервер Odoo прослушивает порт 8069 на всех интерфейсах. Если вы хотите отключить прямой доступ к вашему экземпляру Odoo, вы можете либо заблокировать порт
8069
для всех общедоступных интерфейсов, либо заставить Odoo прослушивать только на локальном интерфейсе.
В этом руководстве мы настроим Odoo для прослушивания только на
127.0.0.1
. Откройте конфигурацию и добавьте следующие две строки в конец файла:
xmlrpc_interface = 127.0.0.1 netrpc_interface = 127.0.0.1
Сохраните файл конфигурации и перезапустите сервер Odoo, чтобы изменения вступили в силу:
Включить многопроцессорность
По умолчанию Odoo работает в режиме многопоточности. Для производственных развертываний рекомендуется переключиться на многопроцессорный сервер, так как это повышает стабильность и улучшает использование системных ресурсов. Чтобы включить многопроцессорность, нам нужно отредактировать конфигурацию Odoo и установить ненулевое количество рабочих процессов.
Количество рабочих рассчитывается на основе количества ядер ЦП в системе и доступной оперативной памяти.
В соответствии с официальной документацией Odoo для расчета количества рабочих и требуемого объема оперативной памяти мы будем использовать следующие формулы и предположения:
Расчет рабочего числа
- теоретическое максимальное количество рабочих = (system_cpus * 2) + 11 рабочих могут обслуживать ~ = 6 одновременно работающих пользователей. Для рабочих также требуется процессор
Расчет объема оперативной памяти
- Мы будем считать, что 20% всех запросов - это тяжелые запросы, а 80% - более легкие. Тяжелые запросы используют около 1 ГБ ОЗУ, а более легкие - около 150 МБ ОЗУ. Необходимая ОЗУ =
number_of_workers * ((light_worker_ratio * light_worker_ram_estimation) + (heavy_worker_ratio * heavy_worker_ram_estimation))
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/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
Перезапустите сервис Odoo, чтобы изменения вступили в силу:
sudo systemctl restart odoo12
Остальные системные ресурсы будут использоваться другими службами, работающими в этой системе. В этом руководстве мы установили Odoo вместе с PostgreSQL и Nginx на одном сервере, и в зависимости от ваших настроек на вашем сервере могут работать другие службы.
Вывод
Из этого туториала вы узнали, как установить Odoo 12 в Ubuntu 18.04 в виртуальной среде Python, используя Nginx в качестве обратного прокси-сервера. Вы также узнали, как включить многопроцессорную обработку и оптимизировать Odoo для производственной среды.
Вы также можете проверить наш учебник о том, как создавать автоматические ежедневные резервные копии ваших баз данных Odoo.
Ubuntu Odoo Postgresql Python Pip Nginx прокси SSLКак развернуть odoo 11 на Ubuntu 18.04
Это руководство охватывает шаги, необходимые для установки и настройки Odoo для работы с использованием исходного кода Git и виртуальной среды Python в системе Ubuntu 18.04.
Как развернуть rocket.chat на Ubuntu 18.04
Rocket.Chat - это коммуникационная платформа с открытым исходным кодом, альтернатива Slack. Rocket.Chat - это идеальное решение для компаний и сообществ, которые хотят разместить собственную систему чата.
Как развернуть самое важное на Ubuntu 18.04
Mattermost объединяет все ваши командные коммуникации и предоставляет различные функции, включая обмен файлами, индивидуальные и групповые сообщения, пользовательские смайлики, видеозвонки и многое другое.







