Обзор развертывания Odoo на сервере¶
Предварительные требования и базовые условия¶
Перед началом работы системы необходимо выполнить следующие предварительные требования:
-
Операционная система: Совместимые дистрибутивы Debian или Ubuntu (тестировалось на Ubuntu 24.04, Debian и устаревших версиях Ubuntu).
-
Права доступа: Для установки пакетов, настройки репозиториев и управления сервисами требуется доступ с правами
rootили черезsudo. -
Настройка домена: Сервер должен быть доступен через домен
hostkey.in. -
Сетевой доступ: Порт
80должен быть открыт на межсетевом экране (firewall) для обеспечения внешнего доступа и валидации сертификатов SSL.
URL доступа¶
Приложение доступно по полностью квалифицированному доменному имени (FQDN) в домене hostkey.in. Стандартный формат URL:
odooServer ID.hostkey.in:80
Где Server ID — уникальный идентификатор, назначенный экземпляру хоста. Внешний путь установлен как /.
Структура файлов и директорий¶
Система организована в специфические директории для конфигурации, хранения данных и управления прокси:
-
Конфигурация репозитория Odoo:
/etc/apt/sources.list.d/odoo.list -
Кольцо ключей GPG:
/usr/share/keyrings/odoo-archive-keyring.gpg -
Директория Docker Compose:
/root/nginx -
Файл Docker Compose:
/root/nginx/compose.yml -
Данные конфигурации Nginx:
/data/nginx -
Volume для секретов SSL: Отображен на
/etc/letsencryptвнутри контейнера прокси.
Процесс установки приложения¶
Приложение Odoo устанавливается версии 18.0 из официального репозитория nightly. Процесс установки включает следующие шаги:
-
Настройка репозитория:
-
Загрузите ключ GPG с
https://nightly.odoo.com/odoo.key. -
Импорт ключа в
/usr/share/keyrings/odoo-archive-keyring.gpg. -
Добавьте репозиторий nightly в список источников в
/etc/apt/sources.list.d/odoo.listс URLhttps://nightly.odoo.com/18.0/nightly/deb.
-
-
Установка пакетов:
-
Установите
python3-pipдля обеспечения управления пакетами Python. -
Установите пакет
odooчерезapt. -
Установите
libssl3для обеспечения совместимости с библиотекой SSL.
-
-
Дополнительные зависимости Python:
-
Для старых версий Ubuntu следующие библиотеки Python устанавливаются вручную:
-
xlwt(для экспорта в формат XLS). -
num2words(для текстового представления сумм). -
Эти пакеты включены по умолчанию в пакет Odoo для Ubuntu 24.04.
-
-
Инструменты генерации PDF:
-
Загрузите и установите
wkhtmltopdf(версия0.12.5). -
Установите необходимые зависимости Qt:
libqt5core5a,libqt5gui5,libqt5network5,libqt5printsupport5,libqt5svg5,libqt5webkit5,libqt5widgets5иxvfb.
-
Прокси-серверы¶
Трафик к приложению управляется прокси Nginx на базе Docker с интегрированным Certbot для SSL-сертификатов.
-
Образ (Image):
jonasal/nginx-certbot:latest -
Режим сети: Host
-
Окружение конфигурации:
-
Email:
hkadm@hostkey.com(используется для уведомлений от Let's Encrypt). -
Файл окружения:
/data/nginx/nginx-certbot.env -
Подключение томов (Volume Mounts):
-
nginx_secrets(внешний том), отображенный на/etc/letsencryptдля хранения SSL-сертификатов. -
/data/nginx/user_conf.d, отображенный на/etc/nginx/user_conf.dдля пользовательских конфигураций.
Контейнеры Docker и их развертывание¶
Прокси-сервер работает внутри контейнера Docker, управляемого через Docker Compose. Скрипт развертывания выполняет следующие действия:
-
Проверяет установку Docker на хосте.
-
Генерирует файл
compose.ymlв директории/root/nginx. -
Запускает сервисы командой:
Эта команда выполняется внутри директории/root/nginx. Контейнер настроен на перезапускunless-stopped.
Базы данных¶
Предоставленная конфигурация фокусируется на слое приложения и прокси. Стандартная установка пакета Odoo включает бэкенд PostgreSQL. В текущих файлах конфигурации не определены пользовательские строки подключения к базе данных или внешние серверы баз данных; сервис Odoo использует стандартный системный экземпляр PostgreSQL, установленный через пакет odoo.
Доступные порты для подключения¶
Следующие порты настроены для внешнего и внутреннего доступа:
| Направление | Порт | Протокол | Назначение |
|---|---|---|---|
| Внешнее | 80 | TCP | HTTP/HTTPS (Nginx Proxy) |
| Внутреннее | 8067 | TCP | Приложение Odoo (Backend) |
Внешний трафик принимается на порту 80 и пересылается приложению Odoo, работающему внутренне на порту 8067.
Запуск, остановка и обновление¶
Управление контейнером прокси Nginx¶
Сервисом прокси управляется через Docker Compose в директории /root/nginx.
-
Запуск сервисов:
-
Остановка сервисов:
-
Перезапуск сервисов:
-
Обновление образа контейнера: Для загрузки последнего образа и перезапуска контейнера:
Управление системным сервисом Odoo¶
Приложение Odoo работает как нативный системный сервис, управляемый через systemd.
-
Запуск Odoo:
-
Остановка Odoo:
-
Перезапуск Odoo:
-
Проверка статуса:
Настройки прав доступа¶
Файл Docker Compose генерируется со следующим владением и правами доступа:
-
Владелец:
root -
Группа:
root -
Мод файла:
0644для файлаcompose.ymlи директории/root/nginx.
Права доступа к файлам приложения Odoo и базе данных управляются автоматически менеджером пакетов apt в процессе установки.