Обзор развертывания 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 производится через обновление пакетов системы: