Обзор развертывания EasyPanel на сервере¶
Предварительные требования¶
Для успешного развертывания приложения необходимо выполнить следующие условия:
-
Операционная система: Ubuntu.
-
Права доступа: наличие прав суперпользователя (root) или возможность выполнения команд через
sudo. -
Свободные порты: порты
80и443должны быть свободны. Если на сервере запущены веб-серверыnginxилиapache2, они должны быть остановлены. -
Контейнеры: любые существующие контейнеры Docker, занимающие порты
80и443, должны быть остановлены. -
Сеть: если активен Docker Swarm, необходимо выйти из кластера перед установкой.
Процесс установки приложения¶
Установка приложения осуществляется с помощью официального скрипта от разработчика. Процесс включает в себя автоматическую подготовку окружения и запуск необходимых компонентов.
-
Остановка существующих веб-серверов (
nginx,apache2). -
Остановка контейнеров, использующих порты
80и443. -
Выход из Docker Swarm (если он активен).
-
Запуск скрипта установки:
Скрипт выполняется в директории /root.
Контейнеры Docker и их запуск¶
Приложение развертывается в контейнерах Docker. В конфигурации используются следующие компоненты:
-
Nginx с Certbot: используется образ
jonasal/nginx-certbot:latest. -
Запускается в режиме
network_mode: host. -
Политика перезапуска:
unless-stopped. -
Хранение секретов Let's Encrypt осуществляется в внешнем томе
nginx_secrets. -
Конфигурация загружается из файла
/data/nginx/nginx-certbot.env. -
Директория пользовательских конфигов монтируется в
/etc/nginx/user_conf.d.
Файл конфигурации docker-compose для прокси-сервера находится по пути /root/nginx/compose.yml.
Прокси серверы¶
В системе используется прокси-сервер Traefik для маршрутизации трафика и управления SSL-сертификатами.
Настройка Traefik¶
-
Входные точки (EntryPoints):
-
web: порт80, настроен на автоматическое перенаправление наwebsecure(HTTPS). -
websecure: порт443, настроен на использование TLS. -
Поставщики конфигурации (Providers):
-
Файловая система: отслеживает изменения в директории динамических конфигов (например,
/etc/traefik/dynamic). -
Docker: используется для обнаружения контейнеров (по умолчанию скрыты).
-
Сертификаты:
-
Используется резолвер
letsencryptдля автоматической генерации сертификатов. -
Хранение данных ACME: файл
acme.jsonв директории/etc/traefik. -
Email для ACME: настраивается через переменную окружения.
-
Вызов HTTP-челленджа происходит через входную точку
web.
Маршрутизация для EasyPanel¶
Конфигурация маршрутизатора для приложения EasyPanel включает:
-
Правило (Rule):
Host(<easypanel_domain>). -
Входные точки:
webиwebsecure. -
Сервис: балансировщик нагрузки, направляющий трафик на
http://easypanel:3000. -
TLS: включен с использованием резолвера
letsencrypt. -
Заголовки: заголовок
Hostпередается приложению (passHostHeader: true).
Конфигурационные файлы Traefik размещаются в директориях /etc/traefik/static и /etc/traefik/dynamic.
Структура файлов и каталогов¶
Основные пути к файлам и директориям в системе:
-
/root/nginx: директория для конфигурации Nginx и Docker Compose. -
/root/nginx/compose.yml: файл конфигурации для запуска Nginx и Certbot. -
/data/nginx: директория для хранения данных Nginx. -
/data/nginx/nginx-certbot.env: файл переменных окружения для Nginx. -
/data/nginx/user_conf.d: директория для пользовательских конфигурационных файлов. -
/data/nginx/user_conf.d/<prefix><server_id>.hostkey.in.conf: файл конфигурации, содержащий правилоproxy_pass http://127.0.0.1:3000;. -
/etc/traefik: директория конфигурации Traefik. -
/etc/traefik/acme.json: файл для хранения сертификатов. -
/etc/traefik/dynamic: директория для динамических конфигураций.
Права доступа и безопасность¶
-
Директория
/root/nginxимеет права0755и принадлежит пользователюroot. -
Файл
/root/nginx/compose.ymlимеет права0644и принадлежит пользователюroot. -
Трафик на портах
80и443перенаправляется на HTTPS. -
Доступ к панели управления Traefik (Dashboard) включен, но настроен как безопасный (
insecure: false).