Обзор развертывания Plane на сервере¶
Предварительные требования¶
Для успешного развертывания приложения необходимо наличие сервера с операционной системой Ubuntu. Требуется наличие прав суперпользователя (root) для выполнения операций установки и конфигурирования.
Приложение требует доступа к интернету для загрузки установочного скрипта и получения SSL-сертификатов. Для работы веб-интерфейса и получения сертификатов должны быть открыты порты 80 и 443. В конфигурации также используется порт 8080 для работы веб-сервера Nginx внутри приложения.
Структура файлов и каталогов¶
Файлы конфигурации и данные приложения размещаются в следующих директориях:
-
/root/plane-app/— основная директория приложения Plane, содержащая переменные окружения и исполняемые файлы. -
/root/nginx/— директория для конфигурации прокси-сервера Nginx и сертификатов. -
/root/nginx/compose.yml— файл конфигурации Docker Compose для запуска Nginx и Certbot. -
/root/plane-app/plane.env— файл переменных окружения для приложения Plane. -
/data/nginx/user_conf.d/— директория для пользовательских конфигураций Nginx. -
/data/nginx/nginx-certbot.env— файл переменных окружения для сервиса Nginx-Certbot.
Процесс установки приложения¶
Установка приложения Plane выполняется с помощью скрипта, предоставляемого разработчиками. Процесс включает следующие этапы:
-
Обновление пакетов системы через менеджер пакетов APT.
-
Создание директории для данных приложения.
-
Загрузка установочного скрипта
setup.shверсииv1.0.0с репозитория GitHub в файл/root/install.sh. -
Запуск скрипта с аргументом установки, который автоматически выбирает действие установки.
-
Модификация файла
/root/plane-app/plane.envдля изменения порта Nginx на8080. -
Настройка переменной
CORS_ALLOWED_ORIGINSв файле/root/plane-app/plane.envс указанием доменного имени в форматеhttps://{{ prefix }}{{ server_id }}.hostkey.in. -
Запуск скрипта с аргументом запуска для инициализации сервиса.
Контейнеры Docker и их запуск¶
Приложение использует Docker для запуска компонентов. Для управления контейнерами используется Docker Compose.
В директории /root/nginx/ размещается файл compose.yml, который описывает сервис nginx с образом jonasal/nginx-certbot:latest. Сервис настроен на автоматический перезапуск (restart: unless-stopped) и использует режим сети host.
Сервис монтирует следующие тома:
-
nginx_secretsв/etc/letsencryptдля хранения SSL-сертификатов. -
Локальную директорию
/data/nginx/user_conf.dв/etc/nginx/user_conf.dдля конфигураций.
Запуск контейнеров выполняется командой docker compose up -d из директории /root/nginx/.
Прокси серверы¶
В конфигурации используется прокси-сервер Nginx в связке с Certbot для автоматического получения и продления SSL-сертификатов.
Сервис Nginx использует образ jonasal/nginx-certbot:latest. Для регистрации и уведомлений используется адрес электронной почты hkadm@hostkey.com. Конфигурация прокси сервера хранится в директории /root/nginx/, а переменные окружения загружаются из файла /data/nginx/nginx-certbot.env.
Настройки прав¶
Права доступа к файлам и директориям устанавливаются следующим образом:
-
Директория
/root/nginxсоздается с правами0755и владельцемroot. -
Файл
/root/nginx/compose.ymlсоздается с правами0644и владельцемroot. -
Директория для данных Plane создается с правами
0755. -
Скрипт установки
/root/install.shполучает права на выполнение0755.
Запуск, остановка и обновление¶
Управление сервисом Nginx и Certbot осуществляется через Docker Compose в директории /root/nginx/.
Для запуска контейнеров используется команда:
выполняемая из директории/root/nginx. Обновление конфигурации или образов контейнеров требует повторного запуска команды docker compose up -d после внесения изменений в файл compose.yml или переменные окружения.