Обзор развертывания Odoo на сервере¶
Предварительные требования¶
Для корректной работы приложения требуются следующие условия:
-
Операционная система: Debian или Ubuntu (включая версию 24.04).
-
Права доступа: права суперпользователя (root) для установки системных пакетов и управления Docker.
-
Доменное имя: наличие настроенного DNS для работы через SSL.
-
Порты:
-
80— для получения сертификатов Certbot. -
443— для защищенного доступа к приложению. -
8069— внутренний порт приложения Odoo.
FDQN итоговой панели на домене hostkey.in¶
Для доступа к интерфейсу используется следующий шаблон доменного имени:
| Параметр | Значение |
|---|---|
| Префикс | odoo |
| Домен | hostkey.in |
| Полный шаблон | odoo{Server_ID}.hostkey.in |
Структура файлов и каталогов¶
Основные данные и конфигурации располагаются в следующих директориях:
-
/root/nginx— рабочая директория для управления контейнером Nginx. -
/data/nginx/user_conf.d— пользовательские конфигурационные файлы Nginx. -
/data/nginx/nginx-certbot.env— файл переменных окружения для Certbot.
Процесс установки приложения¶
Установка выполняется путем настройки системных репозиториев и установки пакетов через менеджер пакетов apt.
-
Настройка репозитория:
-
Загружается GPG-ключ Odoo (
https://nightly.odoo.com/odoo.key). -
Добавляется официальный репозиторий Odoo версии 18.0 в систему.
-
Установка системных компонентов:
-
Устанавливается пакет
python3-pip. -
Устанавливается основной пакет приложения
odoo. -
Устанавливается библиотека
libssl3(для обеспечения совместимости). -
Настройка функционала печати и экспорта:
-
Устанавливаются зависимости для корректного рендеринга PDF через
wkhtmltopdf. -
Включаются дополнительные библиотеки:
libqt5core5a,libqt5gui5,libqt5network5,libqt5printsupport5,libqt5svg5,libqt5webkit5,libqt5widgets5иxvfb. -
Устанавливается пакет
wkhtmltopdfиз официальных репозиториев. -
Дополнительные зависимости (для старых версий ОС):
-
Для систем на базе Ubuntu/Debian устанавливаются Python-библиотеки
xlwtиnum2wordsдля корректного экспорта в XLS и отображения текстовых сумм.
Права доступа и безопасность¶
-
Брандмауэр: Должны быть открыты порты 80 и 443.
-
Конфигурация Nginx: После получения SSL-сертификатов, прослушивание порта 80 перенаправляется на порт 443 (HTTPS). Настроена передача заголовков
HostиX-Forwarded-Protoдля корректной работы приложения за обратным прокси. -
Безопасность: Использование внешнего тома
nginx_secretsдля защиты SSL-сертификатов.
Контейнеры Docker и их запуск¶
Для обеспечения работы веб-сервера и автоматического получения SSL-сертификатов используется контейнер:
| Параметр | Значение |
|---|---|
| Имя образа | jonasal/nginx-certbot:latest |
| Режим перезапуска | unless-stopped |
| Сеть | host |
| Тома (volumes) | nginx_secrets:/etc/letsencrypt/data/nginx/user_conf.d:/etc/nginx/user_conf.d |
| Переменные окружения | CERTBOT_EMAIL=hkadm@hostkey.com |
Инструкция по обновлению приложения¶
Для обновления основного приложения необходимо выполнить обновление системных пакетов: