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

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

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

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

  • Операционная система: Ubuntu.

  • Права доступа: наличие прав суперпользователя (root) или возможность выполнения команд через sudo.

  • Свободные порты: порты 80 и 443 должны быть свободны. Если на сервере запущены веб-серверы nginx или apache2, они должны быть остановлены.

  • Контейнеры: любые существующие контейнеры Docker, занимающие порты 80 и 443, должны быть остановлены.

  • Сеть: если активен Docker Swarm, необходимо выйти из кластера перед установкой.

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

Установка приложения осуществляется с помощью официального скрипта от разработчика. Процесс включает в себя автоматическую подготовку окружения и запуск необходимых компонентов.

  1. Остановка существующих веб-серверов (nginx, apache2).

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

  3. Выход из Docker Swarm (если он активен).

  4. Запуск скрипта установки:

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

Скрипт выполняется в директории /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).

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