Обзор развертывания Odoo на сервере¶
Предварительные требования¶
Для успешного развертывания приложения необходимо наличие сервера с операционной системой Debian или Ubuntu (включая версию 24.04). Требуется наличие прав суперпользователя (root) или доступа через sudo для выполнения команд установки пакетов и настройки репозиториев.
Система должна иметь доступ к интернету для загрузки ключей подписи, пакетов из репозиториев и компонентов для генерации PDF-документов.
Процесс установки приложения¶
Установка производится через официальные репозитории разработчика для версии 18.0 (ночная сборка). Процесс включает следующие этапы:
-
Добавление ключа подписи репозитория в систему.
-
Настройка источника пакетов в файле
/etc/apt/sources.list.d/odoo.list. -
Установка основного пакета
odooчерез менеджер пакетовapt. -
Установка дополнительных библиотек Python для работы с Excel и текстовым форматированием (для версий Ubuntu, отличных от 24.04):
xlwtиnum2words. -
Установка библиотеки
libssl3для обеспечения совместимости. -
Установка утилиты
wkhtmltopdfверсии0.12.5для генерации PDF-документов. -
Установка зависимостей графического интерфейса для работы
wkhtmltopdf:libqt5core5a,libqt5gui5,libqt5network5,libqt5printsupport5,libqt5svg5,libqt5webkit5,libqt5widgets5,xvfb.
Контейнеры Docker и их запуск¶
Для обеспечения работы веб-сервера и получения SSL-сертификатов используется контейнеризация через docker compose.
Конфигурация контейнеров хранится в файле /root/nginx/compose.yml.
Используемый образ контейнера: jonasal/nginx-certbot:latest.
Параметры запуска контейнера:
-
Режим перезапуска:
unless-stopped. -
Режим сети:
host. -
Переменная окружения для электронной почты:
CERTBOT_EMAIL=hkadm@hostkey.com. -
Файл переменных окружения:
/data/nginx/nginx-certbot.env.
Монтируемые тома:
-
nginx_secrets(внешний том) монтируется в/etc/letsencryptдля хранения сертификатов. -
Локальная директория
/data/nginx/user_conf.dмонтируется в/etc/nginx/user_conf.dдля пользовательских конфигураций.
Запуск контейнеров выполняется командой:
в директории/root/nginx. Прокси серверы¶
В качестве прокси-сервера используется контейнер nginx-certbot, который обрабатывает входящий трафик и управляет SSL-сертификатами через Certbot.
Конфигурация прокси сервера включает:
-
Использование внешнего тома
nginx_secretsдля хранения секретов Let's Encrypt. -
Подключение пользовательских конфигураций Nginx из директории
/data/nginx/user_conf.d. -
Автоматическое получение и обновление сертификатов для доменов, указанных в конфигурации.
Права доступа и безопасность¶
Директория для конфигурации Nginx создается с правами доступа:
-
Путь:
/root/nginx. -
Владелец:
root. -
Группа:
root. -
Режим доступа:
0644.
Файл конфигурации compose.yml также создается с правами владельца root и группы root с режимом 0644.
Ключ GPG репозитория Odoo сохраняется в /usr/share/keyrings/odoo-archive-keyring.gpg с правами доступа 0400.
Базы данных¶
Приложение Odoo устанавливается через пакетный менеджер, который по умолчанию настраивает подключение к базе данных PostgreSQL. Конфигурация базы данных хранится в стандартных местах, определенных пакетом odoo в системе.
Запуск, остановка и обновление¶
Управление сервисом Odoo, установленным через пакетный менеджер, осуществляется стандартными командами системы управления службами (например, systemctl).
Для управления контейнером прокси-сервера используются команды docker compose:
-
Запуск:
docker compose up -dв директории/root/nginx. -
Остановка:
docker compose downв директории/root/nginx. -
Обновление образа и перезапуск:
docker compose pullиdocker compose up -d.
Обновление самого приложения Odoo производится через обновление пакетов системы: