Гид по технологиям

Установка Odoo 14 с Nginx на Alma Linux 8

• 5 min read • DevOps • Обновлено 27 Nov 2025
Odoo 14 на Alma Linux 8 с Nginx
Odoo 14 на Alma Linux 8 с Nginx

Что делает этот материал

  • Пошагово проводит через установку Odoo 14 на Alma Linux 8.
  • Показывает, как настроить PostgreSQL, создать systemd-сервис и настроить Nginx в качестве обратного прокси.
  • Даёт рекомендации по проверке и базовой безопасности.

Предварительные требования

  • Сервер с установленной Alma Linux 8.
  • Действующий домен, привязанный к IP сервера.
  • Настроен root-пароль или доступ по sudo.

Установка необходимых зависимостей

Перед началом установите Python, PostgreSQL и другие зависимости. Выполните:

dnf install python3 python3-devel git gcc git redhat-rpm-config libxslt-devel bzip2-devel openldap-devel libjpeg-devel freetype-devel -y

Далее установите wkhtmltopdf (нужен для печати PDF-отчётов из Odoo):

dnf install https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.5/wkhtmltox-0.12.5-1.centos8.x86_64.rpm

Установите сервер PostgreSQL (версия 12 в примере):

dnf install @postgresql:12 -y

Инициализируйте базу данных PostgreSQL:

/usr/bin/postgresql-setup initdb

Запустите и включите сервис PostgreSQL:

systemctl start postgresql  
systemctl enable postgresql

Создайте суперпользователя PostgreSQL для Odoo (имя в примере — odoo14):

su - postgres -c "createuser -s odoo14"

Важно: имя пользователя в PostgreSQL должно совпадать с db_user в конфигурации Odoo.

Установка Odoo 14

Создайте выделенного пользователя для Odoo и домашнюю директорию:

useradd -m -U -r -d /opt/odoo -s /bin/bash odoo14

Переключитесь на пользователя и склонируйте исходники Odoo 14:

su - odoo14  
git clone https://www.github.com/odoo/odoo --depth 1 --branch 14.0 /opt/odoo/odoo14

Создайте виртуальное окружение Python и установите зависимости:

cd /opt/odoo  
python3 -m venv odoo14-venv
source odoo14-venv/bin/activate
pip3 install -r odoo14/requirements.txt
deactivate
exit

Пояснение: виртуальное окружение изолирует Python-пакеты Odoo от системных библиотек и упрощает обновления.

Конфигурация Odoo 14

Создайте директории для пользовательских модулей и логов:

mkdir /opt/odoo/odoo14-custom-addons  
mkdir /var/log/odoo14 && touch /var/log/odoo14/odoo.log

Установите владельца директорий на odoo14:

chown odoo14: /opt/odoo/odoo14-custom-addons  
chown -R odoo14: /var/log/odoo14/

Создайте конфигурационный файл Odoo:

nano /etc/odoo.conf

Добавьте следующее содержимое (поменяйте admin_passwd на надёжный пароль):

[options]
admin_passwd = odoomasterpassword
db_host = False
db_port = False
db_user = odoo14
db_password = False
xmlrpc_port = 8069
logfile = /var/log/odoo14/odoo.log
logrotate = True
addons_path = /opt/odoo/odoo14/addons,/opt/odoo/odoo14-custom-addons

Сохраните и закройте файл.

Создание systemd-сервиса для Odoo 14

Создайте файл сервиса:

nano /etc/systemd/system/odoo14.service

Вставьте:

[Unit]
Description=Odoo14

[Service]
Type=simple
SyslogIdentifier=odoo14
PermissionsStartOnly=true
User=odoo14
Group=odoo14
ExecStart=/opt/odoo/odoo14-venv/bin/python3 /opt/odoo/odoo14/odoo-bin -c /etc/odoo.conf
StandardOutput=journal+console

[Install]
WantedBy=multi-user.target

Перезагрузите systemd и запустите сервис:

systemctl daemon-reload
systemctl start odoo14  
systemctl enable odoo14

Проверка статуса:

systemctl status odoo14

Ожидаемый вывод содержит, что сервис активен (running) и слушает порт 8069. Также можно проверить прослушиваемые порты:

ss -antpl | grep 8069

Настройка Nginx как обратного прокси для Odoo 14

Установите Nginx:

dnf install nginx -y

Создайте файл конфигурации vhost:

nano /etc/nginx/conf.d/odoo14.conf

Добавьте содержимое (замените server_name на ваш домен):

upstream odooserver {
 server 127.0.0.1:8069;
}

server {
    listen 80;
    server_name odoo14.example.com;
    access_log /var/log/nginx/odoo_access.log;
    error_log /var/log/nginx/odoo_error.log;

    # Proxy settings
    proxy_read_timeout 720s;
    proxy_connect_timeout 720s;
    proxy_send_timeout 720s;
    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;

    # Request for root domain
    location / {
       proxy_redirect off;
       proxy_pass http://odooserver;
    }

    # Cache static files
    location ~* /web/static/ {
        proxy_cache_valid 200 90m;
        proxy_buffering on;
        expires 864000;
        proxy_pass http://odooserver;
    }

    # Gzip
    gzip_types text/css text/less text/plain text/xml application/xml application/json application/javascript;
    gzip on;
}

Проверьте синтаксис и запустите Nginx:

nginx -t
systemctl start nginx  
systemctl enable nginx
systemctl status nginx

Верните в конфигурацию Odoo режим прокси, чтобы Odoo корректно работал за Nginx:

nano /etc/odoo.conf

Добавьте в конец файла:

proxy_mode = True

Перезапустите Odoo:

systemctl restart odoo14

Важно: если вы планируете использовать HTTPS (рекомендуется), установите certbot и получите сертификат Let’s Encrypt, затем добавьте перенаправление 80→443 и соответствующую секцию server для TLS.

Настройка брандмауэра

Разрешите HTTP (порт 80):

firewall-cmd --add-service=http --permanent
firewall-cmd --reload

Если используете HTTPS, разрешите service=https также.

Доступ к веб-интерфейсу Odoo 14

Откройте браузер и перейдите по адресу http://odoo14.example.com (замените домен). Должен появиться экран создания базы данных.

! Экран создания базы данных Odoo 14

Предоставьте мастер-пароль Odoo, имя базы, email и пароль администратора, затем нажмите Create database. После успешного создания откроется панель Odoo.

! Панель управления Odoo 14 после создания базы

Вы успешно установили Odoo 14 с Nginx на Alma Linux 8.

Советы по отладке и частые проблемы

  • Если Odoo не запускается, проверьте логи: /var/log/odoo14/odoo.log и journalctl -u odoo14.
  • Ошибка подключения к PostgreSQL: проверьте, что пользователь PostgreSQL совпадает с db_user и что служба PostgreSQL запущена.
  • Проблемы с wkhtmltopdf: используйте совместимую версию пакета и проверьте путь бинарника.
  • Если Nginx отдаёт 502, проверьте, слушает ли Odoo порт 8069 и доступен ли upstream 127.0.0.1:8069.

Важно: при изменении /etc/odoo.conf всегда перезапускайте systemd-сервис Odoo.

Когда этот подход не подходит

  • Если требуется HA (высокая доступность) и отказоустойчивость, одной инсталляции на одном сервере мало — нужен кластер PostgreSQL и балансировщик.
  • Для крупного бизнеса рекомендуются отдельные сервера для базы данных и приложений.
  • Если вы используете специфичные коммерческие модули, убедитесь в совместимости с версией 14.

Альтернативные подходы

  • Установка Odoo из RPM/DEB-пакета (если доступны): проще, но менее гибко для кастомных модулей.
  • Запуск Odoo в Docker-контейнерах: полезно для изоляции и CI/CD.
  • Использование управляемых облачных решений с готовой установкой Odoo.

Минимальная проверка (smoke-test)

  • Odoo сервис активен: systemctl is-active odoo14 → active
  • Порт 8069 слушается: ss -antpl | grep 8069
  • Nginx отвечает: curl -I http://odoo14.example.com
  • Возможность создания базы из веб-интерфейса

Роль-based чек-лист (что должен сделать кто)

  • Системный админ: установить зависимости, PostgreSQL, создать системного пользователя, настроить systemd.
  • DevOps/инженер релиза: настроить Nginx, SSL, мониторинг и резервное копирование.
  • Бизнес-пользователь/администратор Odoo: создать базу, установить модули, настроить доступы.

Критерии приёмки

  • Веб-интерфейс доступен по домену через HTTP/HTTPS.
  • Можно создать и войти в базу данных Odoo.
  • Сервис Odoo стабильно запускается и не падает при базовой нагрузке.
  • Логи Odoo и Nginx не содержат критических ошибок.

Безопасность и рекомендации

  • Настройте HTTPS и перенаправление с HTTP на HTTPS.
  • Закройте доступ к серверу PostgreSQL извне (слушать только локально).
  • Ограничьте доступ к SSH по ключам и используйте fail2ban при необходимости.
  • Регулярно обновляйте систему и зависимости.

Часто задаваемые вопросы

Как изменить порт Odoo?

В конфигурации /etc/odoo.conf измените xmlrpc_port на нужный порт и перезапустите сервис systemctl restart odoo14.

Можно ли запустить несколько экземпляров Odoo на одном сервере?

Да, но каждый экземпляр должен иметь свой системный пользователь, отдельный конфиг, отдельный порт и отдельный путь для виртуального окружения и логов.

Как включить HTTPS через Let’s Encrypt?

Установите certbot (EPEL/репозиторий), получите сертификат certbot –nginx -d yourdomain и настройте перенаправление 80→443; затем проверьте автоматическое обновление cron/renew.

Факты по установке

  • Odoo 14 по умолчанию слушает 8069.
  • wkhtmltopdf часто нужен для печати отчётов.
  • Рекомендуется запускать Odoo в виртуальном окружении Python.

Итог: стандартная установка Odoo 14 на Alma Linux 8 занимает от 20 до 60 минут в зависимости от опыта и наличия доступа к серверу.

FAQ (повтор для семантики и schema)

  • Вопрос: Как восстановить базу Odoo? Ответ: Используйте резервную копию PostgreSQL (pg_dump/pg_restore) или интерфейс Odoo для восстановления базы.
  • Вопрос: Нужно ли запускать Odoo от root? Ответ: Нет. Создайте отдельного системного пользователя (odoo14) и запускайте сервис от него.
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро