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

Установка и настройка Odoo 13 на CentOS 8 с Nginx

6 min read ERP Обновлено 26 Nov 2025
Установка Odoo 13 на CentOS 8 с Nginx
Установка Odoo 13 на CentOS 8 с Nginx

Обложка: установка Odoo на сервере

Важно: перед началом убедитесь, что у вас есть root-доступ к серверу и DNS‑запись для example.com указывает на IP сервера.

О чём эта инструкция

Цель — установка рабочего экземпляра Odoo 13 на CentOS 8 с обратным прокси Nginx. Рассматриваются шаги от подготовки системы до доступа через веб-интерфейс. Включены примеры конфигураций, рекомендации по безопасности и проверки работоспособности.

Ключевые варианты использования: самостоятельная инсталляция для тестовой среды, развёртывание для небольшого бизнеса, базовая подготовка для последующей кастомизации и интеграций.

Краткие определения

  • Odoo — модульная ERP-платформа с CRM, продажами, складом, бухгалтерией и пр.
  • PostgreSQL — реляционная СУБД, используемая Odoo для хранения данных.
  • wkhtmltopdf — утилита для генерации PDF (печать отчётов Odoo).
  • Reverse proxy — обратный прокси (здесь Nginx), который принимает внешние запросы и передаёт их приложению.

Требования

  • Сервер с CentOS 8, минимум 2 ГБ ОЗУ (рекомендуется 4+ ГБ для продуктивной среды).
  • Домен example.com, указывающий на IP сервера.
  • Доступ root или пользователь с sudo.

Быстрый план действий

  1. Обновить систему и установить зависимости.
  2. Создать системного пользователя odoo.
  3. Установить и настроить PostgreSQL, создать роль odoo.
  4. Установить wkhtmltopdf для печати PDF.
  5. Склонировать Odoo 13, создать виртуальное окружение и установить Python-зависимости.
  6. Настроить конфигурационный файл и systemd-сервис.
  7. Установить Nginx и настроить обратный прокси.
  8. Настроить firewall и SELinux.
  9. Опционально: настроить HTTPS (Let’s Encrypt).

Факты и ключевые числа

  • Версия Odoo: 13.0 (в данном руководстве).
  • Порт по умолчанию: 8069.
  • Рекомендуемая ОЗУ: 2–4+ ГБ для теста/малого бизнеса.
  • Сообщество модулей: сотни/тысячи (в зависимости от репозитория).

Шаг 1 — Обновление системы и установка EPEL

Обновите систему и установите репозиторий EPEL:

dnf update
dnf install epel-release

Установите необходимые инструменты и библиотеки:

dnf install python36 python36-devel git gcc wget nodejs libxslt-devel bzip2-devel openldap-devel libjpeg-devel freetype-devel

Примечание: если в вашей среде нужны другие версии Python или дополнительные библиотеки, скорректируйте пакетный набор.

Шаг 2 — Создание пользователя Odoo

Создайте системного пользователя с домашним каталогом /opt/odoo:

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

Шаг 3 — Установка и настройка PostgreSQL

Установите PostgreSQL и инициализируйте базу:

dnf install postgresql postgresql-server postgresql-contrib
/usr/bin/postgresql-setup initdb
systemctl start postgresql
systemctl enable postgresql
systemctl status postgresql

Создайте роль PostgreSQL для пользователя odoo:

su - postgres -c "createuser -s odoo"

Проверка: служба должна быть active (running). Если вы используете нестандартную версию PostgreSQL, уточните команды и имена сервисов.

Шаг 4 — Установка wkhtmltopdf

Odoo печатает отчёты через wkhtmltopdf. Установите совместимую сборку:

wget https://downloads.wkhtmltopdf.org/0.12/0.12.5/wkhtmltox-0.12.5-1.centos7.x86_64.rpm
dnf localinstall wkhtmltox-0.12.5-1.centos7.x86_64.rpm

Проверьте, что утилита доступна: wkhtmltopdf –version

Совет: для корректной работы PDF-рендеринга используйте рекомендуемую версию, совместимую с Odoo 13.

Шаг 5 — Скачивание Odoo 13 и установка зависимостей Python

Переключитесь на пользователя odoo и клонируйте ветку 13.0:

su - odoo

git clone https://www.github.com/odoo/odoo --depth 1 --branch 13.0 /opt/odoo/odoo13

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

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

Если pip выдаёт ошибки при сборке бинарных зависимостей, установите требуемые -devel пакеты и повторите.

Шаг 6 — Директории и права

Создайте директории для кастомных модулей и логов, смените владельца на odoo:

mkdir /opt/odoo/odoo13-custom-addons
mkdir /var/log/odoo13
touch /var/log/odoo13/odoo.log
chown -R odoo:odoo /opt/odoo/odoo13-custom-addons
chown -R odoo:odoo /var/log/odoo13/

Шаг 7 — Конфигурационный файл Odoo

Создайте /etc/odoo.conf и добавьте конфигурацию (измените admin_passwd на надёжный пароль):

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

Ключ: admin_passwd — мастер‑пароль для операций с базами данных. Обязательно замените на сложную строку.

Шаг 8 — Systemd‑сервис для Odoo

Создайте файл /etc/systemd/system/odoo13.service с содержимым:

[Unit]
Description=Odoo13

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

[Install]
WantedBy=multi-user.target

Перезагрузите демон systemd и запустите сервис:

systemctl daemon-reload
systemctl start odoo13
systemctl enable odoo13
systemctl status odoo13

Проверка порта 8069:

netstat -plntu | grep 8069

Если сервис не запускается, смотрите журналы через journalctl -u odoo13 -e и /var/log/odoo13/odoo.log.

Шаг 9 — Установка и настройка Nginx как обратного прокси

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

dnf install nginx

Создайте виртуальный хост /etc/nginx/conf.d/odoo13.conf с содержимым:

upstream odoo {
 server 127.0.0.1:8069;
}
server {
    listen 80;
    server_name example.com;

    access_log /var/log/nginx/odoo13.access.log;
    error_log /var/log/nginx/odoo13.error.log;

        location / {
        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;

        proxy_redirect off;
        proxy_pass http://odoo;
    }

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

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

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

systemctl start nginx
systemctl enable nginx
systemctl status nginx

Проверьте корректность конфигурации через nginx -t.

Шаг 10 — Настройка брандмауэра и SELinux

Разрешите HTTP через firewalld и перезагрузите правила:

firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --permanent --zone=public --add-service=https
firewall-cmd --reload

Разрешите подключение HTTP из процессов под SELinux:

setsebool -P httpd_can_network_connect on

Если SELinux строго ограничивает доступ к файлам или портам, смотрите audit.log и используйте audit2allow для создания правил.

Шаг 11 — Доступ к веб-интерфейсу Odoo

Откройте браузер и перейдите по адресу http://example.com

Форма создания базы данных Odoo — ввод мастер‑пароля, имя базы, почта

Заполните мастер‑пароль, имя базы, email и пароль администратора, выберите страну и нажмите Create database. После создания вы попадёте на страницу администратора Odoo:

Список приложений Odoo на странице администрирования

Рекомендации по безопасности и производительности

  • Обновите admin_passwd в /etc/odoo.conf на уникальную и сложную строку.
  • Настройте бэкапы баз данных PostgreSQL (pg_dump/pg_basebackup) и файлов custom-addons.
  • Перенесите лог-файлы и данные под LVM или выполняйте снимки (snapshots) для скорого восстановления.
  • Для продуктива используйте 4+ ГБ ОЗУ и SSD-диск.
  • Настройте систему журналирования (rsyslog или централизованный ELK/Graylog).

Настройка HTTPS (Let’s Encrypt)

Рекомендуется включить HTTPS для публичного доступа. Установите Certbot и плагин для Nginx (способ установки зависит от репозиториев):

# примерная команда, может потребоваться установка snapd или пакетов из EPEL
certbot --nginx -d example.com

Если автоматическая интеграция не срабатывает, получите сертификат и вручную обновите конфиг nginx, добавив блок listen 443 ssl и пути к сертификатам. Не забудьте настроить автоматическое обновление certbot renew.

Резервное копирование и восстановление (рекомендации)

  • База данных: регулярные дампы командой pg_dumpall или pg_dump для отдельных баз.
  • Файлы: копируйте /opt/odoo, /var/lib/pgsql и /etc/odoo.conf.
  • Тестируйте восстановление на отдельном сервере — только так вы убедитесь в корректности бэкапов.

Пример краткой процедуры восстановления базы:

  1. Остановить сервисы (odoo13, nginx).
  2. Восстановить файлы и конфигурацию.
  3. Восстановить базу через pg_restore/psql.
  4. Запустить сервисы, проверить логи.

Устранение неполадок — распространённые проблемы

  • Odoo не запускается: смотрите journalctl -u odoo13 -e и /var/log/odoo13/odoo.log.
  • Ошибки при установке зависимостей Python: установите dev‑пакеты (libjpeg-devel, zlib-devel и пр.).
  • wkhtmltopdf генерирует пустые PDF: используйте рекомендованную сборку для CentOS 7/8 и проверьте наличие шрифтов.
  • Nginx возвращает 502 Bad Gateway: проверьте, запущен ли odoo13 и слушает порт 8069 (netstat -plntu).
  • SELinux блокирует соединение: проверьте /var/log/audit/audit.log и включите httpd_can_network_connect.

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

  • Использовать встроённый обратный прокси Odoo при тестировании (не рекомендуется для продакшена).
  • Разворачивать Odoo в контейнере (Docker) — удобно для изоляции и управления зависимостями.
  • Использовать сторонние PaaS/образы (например, менеджеры Odoo-провайдеров) для ускорения продакшена.

Контрольный список по ролям

Системный администратор:

  • Проверил обновления системы и установил зависимости.
  • Настроил PostgreSQL и сделал роль odoo.
  • Создал systemd-сервис, настроил SELinux и firewall.

Разработчик / интегратор:

  • Склонировал ветку 13.0, настроил виртуальное окружение.
  • Установил зависимости Python и добавил кастомные модули в odoo13-custom-addons.

Бизнес‑пользователь / администратор Odoo:

  • Создал базу данных через веб-интерфейс, сохранил мастер‑пароль.
  • Установил необходимые приложения и настроил права пользователей.

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

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

Мини‑методология обновлений и миграций

  1. Создайте тестовую копию базы и файлов.
  2. Выполните миграцию модулей на тестовой среде и прогоните регрессионные тесты.
  3. Обновите production в окне обслуживания, после успешного теста.
  4. Иметь план отката: бэкап до миграции и шаги восстановления.

Итоги

Вы установили Odoo 13 на CentOS 8, настроили PostgreSQL, wkhtmltopdf, systemd и Nginx в роли обратного прокси. Дополнительно рассмотрены рекомендации по безопасности, бэкапам, HTTPS и устранению неполадок.

Важно: для продакшена дополнительно настройте мониторинг, автоматическое обновление сертификатов, и протестируйте резервное восстановление.

Дополнительные ресурсы: официальная документация Odoo, документация PostgreSQL и Nginx.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

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

Исправить ошибку d3d9.dll в Windows
Windows

Исправить ошибку d3d9.dll в Windows

Отключить всплывающие объявления на Samsung
Мобильные советы

Отключить всплывающие объявления на Samsung

Как смотреть и чего ждать от мартовского Apple
Технологии

Как смотреть и чего ждать от мартовского Apple

Как сохранить маршрут Google Maps на ПК
Руководство

Как сохранить маршрут Google Maps на ПК

Голосовой ввод на Chromebook — как включить
Chromebook

Голосовой ввод на Chromebook — как включить

Как создать и управлять рабочим пространством Slack
Производительность

Как создать и управлять рабочим пространством Slack