Обзор развертывания EasyPanel на сервере¶
Предварительные требования и основные условия¶
Перед развертыванием EasyPanel убедитесь, что среда сервера соответствует следующим спецификациям:
-
Операционная система: Ubuntu (совместима с предоставленным скриптом установки).
-
Права доступа: Требуется доступ root для выполнения официального скрипта установки и управления контейнерами Docker.
-
Настройка домена: Сервер должен быть настроен так, чтобы разрешать FQDN (полное доменное имя) в зоне
hostkey.in. -
Доступность портов: Порты 80 и 443 должны быть свободны для работы прокси и завершения SSL-сессий. Порт 3000 используется внутренне приложением EasyPanel.
-
Существующие сервисы: Любые существующие веб-серверы (Nginx, Apache2) или контейнеры Docker, занимающие порты 80 и 443, будут остановлены или удалены во избежание конфликтов.
FQDN конечной панели¶
Приложение доступно по следующему формату полного доменного имени (FQDN):
-
<prefix><ID сервера>.hostkey.in:443 -
В соответствии с переменными конфигурации, конкретный шаблон имени хоста —
easypanel<ID сервера>.hostkey.in. -
Порт внешнего доступа —
443(HTTPS), который является стандартным портом для шлюза прокси.
Структура файлов и каталогов¶
Развертывание использует специфические директории для файлов конфигурации, хранения данных и секретов контейнеров:
-
/root/nginx: Директория, содержащая конфигурацию Docker Compose для прокси Nginx-Certbot. -
/root/nginx/compose.yml: Файл Docker Compose, определяющий сервис Nginx. -
/data/nginx/user_conf.d/: Директория для хранения пользовательских файлов конфигурации Nginx. -
/data/nginx/user_conf.d/easypanel<ID сервера>.hostkey.in.conf: Специфический файл конфигурации для прокси-пересылки (proxy pass) EasyPanel. -
/data/nginx/nginx-certbot.env: Файл переменных окружения, используемый контейнером Nginx. -
/etc/traefik/dynamic/: Директория для файлов динамической конфигурации Traefik. -
/etc/traefik/acme.json: Файл хранилища для SSL-сертификатов Let's Encrypt. -
/etc/letsencrypt: Точка монтирования тома (volume mount point) для секретов SSL контейнера Nginx-Certbot.
Процесс установки приложения¶
EasyPanel устанавливается с использованием официального скрипта установки, предоставленного разработчиками. Скрипт развертывания выполняет следующие действия:
-
Останавливает любые существующие сервисы Nginx или Apache2.
-
Останавливает контейнеры Docker, в настоящее время опубликованные на портах 80 и 443.
-
При наличии оставляет активным Docker Swarm для обеспечения изолированной среды.
-
Выполняет официальный установщик:
Этот скрипт выполняется в директории/rootс включенной проверкой ошибок.
Контейнеры Docker и их развертывание¶
Развертывание основано на двух основных компонентах на базе Docker: приложение EasyPanel и стек обратного прокси.
Прокси Nginx-Certbot¶
Прокси Nginx развертывается через Docker Compose с использованием образа jonasal/nginx-certbot:latest.
-
Политика перезапуска:
unless-stopped. -
Режим сети:
host. -
Окружение: Настроено с электронной почтой
hkadm@hostkey.comчерез файлnginx-certbot.env. -
Тома (Volumes):
-
nginx_secrets, смонтированный в/etc/letsencrypt. -
/data/nginx/user_conf.d, смонтированный в/etc/nginx/user_conf.d.
-
Конфигурация Traefik¶
Traefik настроен как динамический маршрутизатор для управления трафиком. Статическая конфигурация хранится в /etc/traefik/static (подразумевается стандартными путями), а динамические конфигурации размещены в /opt/traefik/dynamic.
-
Точки входа (Entry Points):
-
web, слушающий порт 80. -
websecure, слушающий порт 443.
-
-
Маршрутизация сервисов:
-
Маршрутизатор
easypanelсоответствует хостуeasypanel<ID сервера>.hostkey.in. -
Сервис
easypanelосуществляет балансировку трафика на внутренний контейнерeasypanelпо порту3000. -
Включена опция
passHostHeaderдля обеспечения получения приложением исходного заголовка хоста.
-
Серверы прокси и конфигурация SSL¶
Трафик маршрутизируется через Nginx и Traefik для обработки завершения SSL-сессий и перенаправления HTTP.
Прокси Nginx¶
Генерируется пользовательская конфигурация Nginx по пути /data/nginx/user_conf.d/easypanel<ID сервера>.hostkey.in.conf. Эта конфигурация включает:
-
Блок location для корневого пути
/. -
Директиву
proxy_pass, пересылающую запросы наhttp://127.0.0.1:3000.
Traefik и SSL¶
Traefik управляет SSL-сертификатами, используя протокол ACME от Let's Encrypt.
-
Резолвер сертификатов:
letsencrypt. -
Электронная почта ACME:
hostkey@hostkey.com. -
Хранилище сертификатов:
/opt/traefik/acme.json. -
HTTP Challenge: Выполняется через точку входа
web(порт 80). -
Перенаправление: Весь HTTP-трафик на порту 80 безвозвратно перенаправляется на HTTPS (
websecure).
Настройки разрешений¶
Для обеспечения корректной работы сервисов и файлов конфигурации применяются следующие права доступа:
-
/root/nginx: Директория создана с правами0755, владелецroot:root. -
/root/nginx/compose.yml: Файл создан с правами0644, владелецroot:root. -
Файлы конфигурации Nginx в
/data/nginx/user_conf.d/: Управляются процессом развертывания для обеспечения владения root и возможности внесения изменений.
Доступные порты для подключения¶
Развернутая инфраструктура использует следующие порты:
-
Порт 80 (HTTP): Используется для вызовов проверки SSL-сертификатов и автоматического перенаправления на HTTPS.
-
Порт 443 (HTTPS): Основной порт доступа к веб-интерфейсу EasyPanel.
-
Порт 3000 (TCP): Внутренний порт, используемый контейнером приложения EasyPanel. Он не открыт напрямую для внешней сети, но доступен внутренне для прокси.
Запуск, остановка и обновление¶
Управление службами прокси и приложения осуществляется через команды Docker.
Управление прокси¶
Для управления сервисом прокси Nginx-Certbot, определенным в /root/nginx:
-
Запуск/Обновление:
-
Остановка:
Управление EasyPanel¶
EasyPanel управляется как контейнер Docker. Применяются стандартные команды Docker:
-
Просмотр статуса:
-
Перезапуск:
-
Обновление:
(Примечание: конкретные команды обновления могут различаться в зависимости от метода оркестрации контейнеров, используемого официальным скриптом установщика.)