Обзор развертывания Plane на сервере¶
Предпосылки и предварительные требования¶
- Операционная система Ubuntu (проверено на версиях 20.04 и 22.04).
- Доступ с привилегиями пользователя root (или пользователя с правом
sudo). - Свободное место на диске для хранения контейнеров Docker и данных Plane.
- Подключение к Интернету для скачивания пакетов и образов Docker.
Структура файлов и каталогов¶
После выполнения развертывания на сервере появятся следующие каталоги и файлы:
| Путь | Описание | Права доступа |
|---|---|---|
/root/nginx/ | Рабочий каталог для Docker‑композиса Nginx‑Certbot | root:root 0755 |
/root/nginx/compose.yml | Файл docker‑compose, генерируемый из шаблона | root:root 0644 |
/root/plane-app/plane.env | Конфигурационный файл окружения Plane (изменён в процессе установки) | root:root 0644 |
/root/install.sh | Сценарий установки Plane (скачан с GitHub) | root:root 0755 |
<plane_data_dir> (значение переменной plane_data_dir в playbook) | Хранилище данных Plane | root:root 0755 |
Важно: Каталог plane_data_dir создаётся только в случае, если в конфигурации заданы пути к данным.
Права доступа и безопасность¶
- Все файлы, созданные скриптом установки, принадлежат пользователю
root. - Права на файлы ограничены
0644для конфигурационных файлов и0755для исполняемых скриптов. - Docker‑контейнер
nginxзапускается в режимеhost, что даёт ему доступ к сетевому стеку сервера, но все данные сертификатов находятся в Docker‑volumenginx_secrets(экстernal volume). - Настройки окружения, такие как
CERTBOT_EMAIL, находятся в переменных окружения, а не в открытом тексте файлаcompose.yml.
Базы данных¶
В предоставленных файлах нет прямой ссылки на БД. Планируется, что Plane будет использовать собственную схему хранения данных внутри контейнера, а не внешнюю базу.
Контейнеры Docker и их запуск¶
Nginx‑Certbot¶
В качестве прокси‑серверов используется контейнер jonasal/nginx-certbot:latest. Он создаётся и запускается через Docker‑compose.
Шаги установки: 1. Создаётся каталог /root/nginx и копируется шаблон compose.yml.j2 в /root/nginx/compose.yml. 2. В compose.yml указываются: - image: jonasal/nginx-certbot:latest - Переменная окружения CERTBOT_EMAIL=hkadm@hostkey.com. - env_file: /data/nginx/nginx-certbot.env. - network_mode: host. - Внешний volume nginx_secrets для хранения Let’s Encrypt сертификатов. - Монтирование /data/nginx/user_conf.d в каталог /etc/nginx/user_conf.d контейнера. 3. Команда docker compose up -d запускает сервисы в фоне.
Если docker compose не установлен, сначала установите Docker, затем docker compose.
Plane¶
Сценарий установки install.sh запускается дважды: 1. Установка – ответ 1 на приглашение «Select a Action you want to perform:» запускает процесс установки и создания необходимых файлов.
2. Запуск – ответ 2 инициирует старт приложений.
В процессе установки: - Устанавливается NGINX на порт 8080 (изменено в файле /root/plane-app/plane.env). - Задаётся CORS_ALLOWED_ORIGINS, где {{ prefix }} и {{ server_id }} заменяются на значения, предоставленные пользователем.
Прокси серверы (Nginx, Traefic и т.п.)¶
Plane использует nginx-certbot как прокси‑сервер с автоматическим управлением сертификатами Let’s Encrypt.
- Настройка домена: CORS_ALLOWED_ORIGINS указывает на домен вида https://<prefix><server_id>.hostkey.in.
- Монтирование пользовательских конфигураций: каталог /data/nginx/user_conf.d может содержать дополнительные конфигурационные блоки для nginx.
Внимание: network_mode: host делает контейнер nginx видимым как обычный сервис на хосте, поэтому доступ к порту 8080 остаётся открытым для внешних запросов.
Настройки прав, запуск, остановка и обновление¶
Запуск¶
Остановка¶
Обновление¶
Для обновления Plane необходимо:
- Скачать новую версию
install.shс GitHub (заменить URL на нужную версию). - Запустить установку с ответом
1, а затем старт с ответом2. - Перезапустить контейнеры Docker:
Проверка статуса¶
Логи¶
Таким образом, после развертывания вы получите полностью работающее приложение Plane, защищённое HTTPS сертификатами Let’s Encrypt, с настройками CORS и возможностью управлять процессами через Docker‑compose.