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

Обзор развертывания 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 устанавливается с использованием официального скрипта установки, предоставленного разработчиками. Скрипт развертывания выполняет следующие действия:

  1. Останавливает любые существующие сервисы Nginx или Apache2.

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

  3. При наличии оставляет активным Docker Swarm для обеспечения изолированной среды.

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

    curl -sSL https://get.easypanel.io | sh
    
    Этот скрипт выполняется в директории /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:

  • Запуск/Обновление:

    cd /root/nginx
    docker compose up -d
    

  • Остановка:

    cd /root/nginx
    docker compose down
    

Управление EasyPanel

EasyPanel управляется как контейнер Docker. Применяются стандартные команды Docker:

  • Просмотр статуса:

    docker ps | grep easypanel
    

  • Перезапуск:

    docker restart easypanel
    

  • Обновление:

    docker compose pull
    docker compose up -d
    
    (Примечание: конкретные команды обновления могут различаться в зависимости от метода оркестрации контейнеров, используемого официальным скриптом установщика.)

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