Установка Odoo 14 с Nginx на Alma Linux 8
Что делает этот материал
- Пошагово проводит через установку 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) и запускайте сервис от него.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента