Обзор развертывания Odoo на сервере¶
Предварительные требования¶
Для успешной работы приложения требуются следующие условия:
-
Операционная система: Debian или Ubuntu (включая версию 24.04).
-
Права доступа: Права суперпользователя (
root) для установки системных пакетов и управления Docker. -
Порты:
-
80— для получения SSL-сертификатов через HTTP. -
443— основной порт для работы приложения по HTTPS. -
8067— внутренний порт сервиса Odoo.
-
FDQN итоговой панели на домене hostkey.in¶
Шаблон доменного имени формируется следующим образом:
| Параметр | Значение |
|---|---|
| Префикс | odoo |
| Домен | hostkey.in |
| Полный шаблон | odoo{Server_ID_from_Invapi}.hostkey.in |
Структура файлов и каталогов¶
Основные директории, используемые в системе:
-
/etc/apt/sources.list.d/odoo.list— файл репозитория Odoo. -
/usr/share/keyrings/odoo-archive-keyring.gpg— ключ безопасности репозитория. -
/root/nginx— рабочая директория конфигурации Nginx и Docker Compose. -
/data/nginx/user_conf.d— пользовательские конфигурационные файлы Nginx. -
/data/nginx/nginx-certbot.env— файл переменных окружения для контейнера Nginx.
Процесс установки приложения¶
Приложение устанавливается путем добавления официального репозитория Odoo (версия 18.0) и установки пакета odoo через системный менеджер пакетов apt. Также в систему устанавливаются зависимости для корректной работы функций экспорта (библиотеки Python xlwt, num2words) и компоненты для генерации PDF-документов (wkhtmltopdf).
Права доступа и безопасность¶
-
Брандмауэр: Должны быть открыты порты 80 и 443.
-
Безопасность репозитория: Используется GPG-ключ для проверки подлинности пакетов Odoo.
-
Контейнеризация: Прокси-сервер работает в изолированном Docker-контейнере, используя общие тома для сертификатов.
Контейнеры Docker и их запуск¶
Для обеспечения работы HTTPS используется контейнер Nginx с автоматическим получением сертификатов Certbot.
| Параметр | Значение |
|---|---|
| Имя образа | jonasal/nginx-certbot:latest |
| Порты | host (используется режим network_mode: host) |
| Тома (volumes) | nginx_secrets:/etc/letsencrypt, /data/nginx/user_conf.d:/etc/nginx/user_conf.d |
| Переменные окружения | CERTBOT_EMAIL=hkadm@hostkey.com |
| Политика перезапуска | unless-stopped |
Обновление приложения¶
Обновление выполняется через обновление системных пакетов:
Также требуется перезагрузка конфигурации Nginx для применения изменений:Настройки прав¶
Для работы сервиса используются следующие права на директории:
-
/root/nginx: владелецroot, группаroot, режим0755. -
Файлы конфигурации в
/data/nginx/user_conf.dимеют соответствующие права доступа для чтения Nginx.
Расположение конфигурационных файлов и данных¶
-
Конфигурация проксирования:
/data/nginx/user_conf.d/odoo{Server_ID}.hostkey.in.conf. -
Файл переменных Docker:
/data/nginx/nginx-certbot.env.
Доступные порты для подключения¶
https://odoo{Server_ID}.hostkey.in— основной доступ к интерфейсу Odoo.
Запуск, остановка приложения¶
Управление прокси-сервером осуществляется через Docker Compose:
-
Запуск:
docker compose up -d(в директории/root/nginx). -
Перезагрузка конфигурации Nginx:
docker exec nginx-nginx-1 nginx -s reload.