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

Обзор развертывания EasyPanel на сервере

Предварительные требования и базовые условия

Для успешного развертывания EasyPanel на сервере должны быть выполнены следующие условия:

  • Операционная система: Ubuntu (проверено через tasks/ubuntu.yml).

  • Привилегии: Требуется доступ root для выполнения скриптов установки и управления контейнерами Docker.

  • Настройка домена: Сервер должен быть настроен для разрешения конкретного FQDN для экземпляра EasyPanel.

  • Доступность портов: Порты 80 и 443 должны быть доступны для обратного прокси-сервера и завершения SSL-соединений. Порт 3000 используется внутренне для приложения EasyPanel.

  • Docker: На хосте должен быть установлен и запущен Docker Engine.

FQDN конечной панели

Полное доменное имя (FQDN) для доступа к интерфейсу EasyPanel имеет следующий формат:

easypanel<Server ID>.hostkey.in:443

Где <Server ID> — уникальный идентификатор, присвоенный конкретному экземпляру сервера. Приложение доступно через HTTPS на порту 443.

Структура файлов и каталогов

Развертывание использует следующую структуру каталогов для конфигурации, данных и сертификатов:

  • /root/nginx/: Содержит конфигурацию Docker Compose для прокси-сервера Nginx/Certbot.

  • /data/nginx/user_conf.d/: Хранит пользовательские файлы конфигурации Nginx, включая конкретное правило proxy_pass для EasyPanel.

  • /data/nginx/nginx-certbot.env: Файл окружения для контейнера Nginx Certbot.

  • /etc/traefik/: Содержит основные файлы конфигурации Traefik.

  • /etc/traefik/dynamic/: Каталог для конфигураций динамического маршрутизации.

  • /etc/traefik/acme.json: Файл хранения SSL-сертификатов Let's Encrypt, управляемых Traefik.

  • /etc/letsencrypt/: Точка монтирования тома для SSL-сертификатов, управляемых контейнером Nginx Certbot.

Процесс установки приложения

EasyPanel устанавливается с помощью официального скрипта установки, предоставленного разработчиками. Процесс включает следующие шаги:

  1. Остановите любые существующие веб-серверы (Nginx или Apache), которые могут конфликтовать с портами 80 или 443.

  2. Остановите любые существующие контейнеры Docker, занимающие порты 80 или 443.

  3. Оставьте любой активный Docker Swarm, чтобы обеспечить автономную среду Docker.

  4. Выполните официальный скрипт установки:

curl -sSL https://get.easypanel.io | sh

Этот скрипт устанавливает приложение EasyPanel и его необходимые зависимости, обычно запуская приложение внутри контейнера Docker на порту 3000.

Права доступа и безопасность

Меры безопасности, реализованные в процессе развертывания, включают:

  • Межсетевой экран и управление портами: Существующие службы на портах 80 и 443 останавливаются для предотвращения конфликтов. Внешний трафик обрабатывается обратным прокси-сервером.

  • Привилегии пользователя: Установка и управление конфигурацией требуют привилегий root.

  • Изоляция служб: Приложение работает внутри контейнеров Docker, что изолирует его от операционной системы хоста.

  • SSL/TLS: Весь внешний трафик перенаправляется на HTTPS с использованием сертификатов Let's Encrypt.

Контейнеры Docker и их развертывание

Развертывание использует несколько контейнеров Docker для управления приложением и службами прокси:

  • Контейнер EasyPanel:

  • Развернут через официальный скрипт установки.

  • Слушает внутренний порт 3000.

  • Имя службы: easypanel.

  • Контейнер Nginx Certbot:

  • Образ: jonasal/nginx-certbot:latest.

  • Управляется через Docker Compose, расположенный по адресу /root/nginx/compose.yml.

  • Режим сети: host.

  • Тома:

    • nginx_secrets смонтирован в /etc/letsencrypt.

    • /data/nginx/user_conf.d смонтирован в /etc/nginx/user_conf.d.

  • Окружение: Использует CERTBOT_EMAIL=hkadm@hostkey.com и загружает переменные из /data/nginx/nginx-certbot.env.

  • Контейнер Traefik:

  • Выступает в роли основного обратного прокси-сервера и балансировщика нагрузки.

  • Управляет динамической маршрутизацией и завершением SSL-соединений.

  • Конфигурация разделена между статическими и динамическими файлами.

Прокси-серверы

Архитектура использует двойную настройку прокси с участием Nginx и Traefik для обработки маршрутизации и SSL:

  • Nginx:

  • Используется для конкретных пользовательских конфигураций и управления SSL-сертификатами через Certbot.

  • Пользовательский файл конфигурации: /data/nginx/user_conf.d/easypanel<Server ID>.hostkey.in.conf.

  • Включает директиву proxy_pass, пересылающую трафик на http://127.0.0.1:3000.

  • Traefik:

  • Статическая конфигурация: Расположена в /etc/traefik/traefik.yml (или аналогичном статическом файле).

    • Определяет точки входа web (порт 80) и websecure (порт 443).

    • Настраивает автоматическое перенаправление с HTTP на HTTPS.

    • Настраивает решатель сертификатов letsencrypt, используя электронную почту hostkey@hostkey.com.

    • Хранит сертификаты в /etc/traefik/acme.json.

  • Динамическая конфигурация: Расположена в /etc/traefik/dynamic/.

    • Определяет правило маршрутизатора easypanel: Host(easypanel<Server ID>.hostkey.in).

    • Перенаправляет трафик на службу easypanel по адресу http://easypanel:3000.

    • Включает TLS с использованием решателя letsencrypt.

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

Права доступа к файлам и каталогам настроены следующим образом для обеспечения корректной работы:

  • /root/nginx/:

  • Владелец: root:root.

  • Режим: 0755 (Каталог).

  • /root/nginx/compose.yml:

  • Владелец: root:root.

  • Режим: 0644.

  • /data/nginx/user_conf.d/:

  • Смонтирован в контейнер Nginx; права доступа на хосте должны позволять контейнеру чтение/запись.

  • /etc/traefik/:

  • Стандартные системные права доступа к конфигурации (обычно root:root).

Расположение файлов конфигурации и данных

Следующая таблица суммирует критически важные файлы конфигурации и их расположение:

Путь к файлу Описание
/root/nginx/compose.yml Определение Docker Compose для Nginx Certbot.
/data/nginx/user_conf.d/easypanel<Server ID>.hostkey.in.conf Пользовательская конфигурация прокси Nginx для EasyPanel.
/data/nginx/nginx-certbot.env Переменные окружения для контейнера Nginx Certbot.
/etc/traefik/traefik.yml Основная статическая конфигурация Traefik.
/etc/traefik/dynamic/easypanel.yml Конфигурация динамической маршрутизации для EasyPanel.
/etc/traefik/acme.json Хранилище сертификатов Let's Encrypt для Traefik.
/etc/letsencrypt/ Хранилище сертификатов Let's Encrypt для Nginx Certbot.

Доступные порты для подключения

В развертывании используются следующие порты:

  • Порт 80: Точка входа HTTP для Traefik (перенаправляет на HTTPS).

  • Порт 443: Точка входа HTTPS для Traefik (обслуживает интерфейс EasyPanel).

  • Порт 3000: Внутренний порт для приложения EasyPanel (не открыт напрямую для публичного интернета).

Запуск, остановка и обновление

Управление службами осуществляется через команды Docker и внутренние механизмы EasyPanel:

  • Служба Nginx Certbot:

  • Запуск/Перезапуск: docker compose up -d, выполненная из /root/nginx/.

  • Остановка: docker compose down, выполненная из /root/nginx/.

  • Служба EasyPanel:

  • Управляется как контейнер Docker.

  • Команды запуска/остановки/перезапуска зависят от имени контейнера, назначенного скриптом установки (обычно easypanel).

  • Обновление: Запустите официальный скрипт установки повторно для обновления версии приложения.

  • Служба Traefik:

  • Управляется как контейнер Docker.

  • Изменения конфигурации в /etc/traefik/dynamic/ автоматически отслеживаются и применяются Traefik благодаря настройке watch: true в статической конфигурации.

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