Перейти к содержанию

Обзор развертывания 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. Процесс установки включает следующие шаги:

  1. Настройка репозитория:

    • Загрузите ключ GPG с https://nightly.odoo.com/odoo.key.

    • Импорт ключа в /usr/share/keyrings/odoo-archive-keyring.gpg.

    • Добавьте репозиторий nightly в список источников в /etc/apt/sources.list.d/odoo.list с URL https://nightly.odoo.com/18.0/nightly/deb.

  2. Установка пакетов:

    • Установите python3-pip для обеспечения управления пакетами Python.

    • Установите пакет odoo через apt.

    • Установите libssl3 для обеспечения совместимости с библиотекой SSL.

  3. Дополнительные зависимости Python:

    • Для старых версий Ubuntu следующие библиотеки Python устанавливаются вручную:

    • xlwt (для экспорта в формат XLS).

    • num2words (для текстового представления сумм).

    • Эти пакеты включены по умолчанию в пакет Odoo для Ubuntu 24.04.

  4. Инструменты генерации 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. Скрипт развертывания выполняет следующие действия:

  1. Проверяет установку Docker на хосте.

  2. Генерирует файл compose.yml в директории /root/nginx.

  3. Запускает сервисы командой:

    docker compose up -d
    
    Эта команда выполняется внутри директории /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.

  • Запуск сервисов:

    cd /root/nginx
    docker compose up -d
    

  • Остановка сервисов:

    cd /root/nginx
    docker compose down
    

  • Перезапуск сервисов:

    cd /root/nginx
    docker compose restart
    

  • Обновление образа контейнера: Для загрузки последнего образа и перезапуска контейнера:

    cd /root/nginx
    docker compose pull
    docker compose up -d
    

Управление системным сервисом Odoo

Приложение Odoo работает как нативный системный сервис, управляемый через systemd.

  • Запуск Odoo:

    systemctl start odoo
    

  • Остановка Odoo:

    systemctl stop odoo
    

  • Перезапуск Odoo:

    systemctl restart odoo
    

  • Проверка статуса:

    systemctl status odoo
    

Настройки прав доступа

Файл Docker Compose генерируется со следующим владением и правами доступа:

  • Владелец: root

  • Группа: root

  • Мод файла: 0644 для файла compose.yml и директории /root/nginx.

Права доступа к файлам приложения Odoo и базе данных управляются автоматически менеджером пакетов apt в процессе установки.

question_mark
Я могу вам чем-то помочь?
question_mark
ИИ Помощник ×