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

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

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

  • Операционная система – Ubuntu (или совместимая с Docker).
  • Docker – установлена последняя стабильная версия.
  • Root‑доступ – все операции выполняются под пользователем root.
  • Домен – один или несколько DNS‑записей, указывающих на IP‑адрес сервера, где будет размещён EasyPanel.
  • Порты – 80 и 443 должны быть открыты для входящих соединений.

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

Путь Описание Права Владелец
/root/nginx Корневая папка, в которой создаётся compose.yml для Nginx‑certbot. 0755 root:root
/root/nginx/compose.yml Файл Docker‑Compose для контейнера jonasal/nginx-certbot. 0644 root:root
/data/nginx Место хранения переменных окружения и пользовательских конфигураций Nginx. 0755 root:root
/data/nginx/nginx-certbot.env Переменные окружения, включая CERTBOT_EMAIL. 0644 root:root
/data/nginx/user_conf.d Папка с пользовательскими конфигурационными файлами, например *.hostkey.in.conf. 0755 root:root
/data/nginx/user_conf.d/{{prefix}}{{server_id}}.hostkey.in.conf Конфигурация конкретного домена – добавляется строка proxy_pass http://127.0.0.1:3000;. 0644 root:root
/etc/traefik Папка с конфигурацией Traefik (если используется). 0755 root:root
/etc/traefik/dynamic Динамическая конфигурация Traefik (routers, services). 0755 root:root

Все файлы принадлежат root:root, чтобы исключить доступ неавторизованных пользователей к конфиденциальным данным, таким как сертификаты Let’s Encrypt.

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

  • Файлы конфигурации имеют права 0644, что позволяет читать их только пользователю root, но запрещает запись для остальных.
  • Директории содержат права 0755, что обеспечивает доступ для чтения и исполнения всех пользователей, но запись только для root.
  • Контейнер jonasal/nginx-certbot работает в режиме host, поэтому доступ к сетевым портам 80 и 443 осуществляется напрямую без NAT.
  • При использовании Traefik подключение к его панелям (dashboard) защищено TLS‑сертификатом Let's Encrypt и доступом только по HTTPS.

Базы данных

В текущем развертывании EasyPanel не использует собственные внешние базы данных. Вся необходимая информация хранится в контейнере EasyPanel, который запускается на внутреннем порту 3000.

Контейнеры Docker и их запуск

1. Nginx‑certbot

Файл compose.yml создаётся из шаблона compose.yml.j2. Он описывает сервис:

services:
  nginx:
    image: jonasal/nginx-certbot:latest
    restart: unless-stopped
    environment:
      - CERTBOT_EMAIL=hkadm@hostkey.com
    env_file:
      - /data/nginx/nginx-certbot.env
    network_mode: host
    volumes:
      - nginx_secrets:/etc/letsencrypt
      - /data/nginx/user_conf.d:/etc/nginx/user_conf.d

Для запуска используйте:

cd /root/nginx
docker compose up -d

Команда поднимает контейнер, который автоматически запрашивает сертификаты Let’s Encrypt и обслуживает HTTPS‑трафик для всех доменов, перечисленных в /data/nginx/user_conf.d.

2. EasyPanel

После установки EasyPanel с помощью официального скрипта (curl -sSL https://get.easypanel.io | sh), контейнер автоматически запускается в фоне на порту 3000. Для обновления сервиса:

docker pull easypanel/easypanel:latest
docker restart easypanel

3. Traefik (опционально)

Если требуется использовать Traefik вместо Nginx‑certbot, конфигурационные файлы генерируются из шаблонов traefik_static.yml.j2 и traefik_dynamic_easypanel.yml.j2. После создания docker-compose.yml для Traefik выполните:

docker compose -f traefik-compose.yml up -d

Traefik будет слушать порты 80 и 443, перенаправляя трафик к сервису EasyPanel (http://easypanel:3000) согласно роутеру easypanel.

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

Прокси Конфигурация Домен Транспорт
Nginx‑certbot compose.yml + /data/nginx/user_conf.d Любой из доменов, указанных в файле конфигурации HTTPS с автоматическим сертификатом Let’s Encrypt
Traefik traefik_static.yml.j2 + traefik_dynamic_easypanel.yml.j2 {{ easypanel_domain }} HTTPS + HTTP‑перенаправление к websecure

Для каждого домена в user_conf.d добавляется строка proxy_pass http://127.0.0.1:3000;, чтобы запросы корректно перенаправлялись на сервис EasyPanel.

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

Запуск

# Nginx‑certbot
cd /root/nginx
docker compose up -d

# EasyPanel
# уже запущен автоматически после установки, но при необходимости
docker start easypanel

Остановка

# Остановить все контейнеры, использующие порты 80 и 443
docker stop $(docker ps -q --filter "publish=80" --filter "publish=443")

# Остановить Nginx‑certbot
cd /root/nginx
docker compose down

# Остановить EasyPanel
docker stop easypanel

Обновление

# Обновить образ Nginx‑certbot
docker pull jonasal/nginx-certbot:latest
docker compose -f /root/nginx/compose.yml up -d

# Обновить EasyPanel
docker pull easypanel/easypanel:latest
docker restart easypanel

# При обновлении Traefik обновите образ и перезапустите
docker pull traefik:latest
docker compose -f traefik-compose.yml up -d

Эти шаги описывают, как развернуть и поддерживать EasyPanel на сервере, включая работу с Docker‑контейнерами, прокси‑серверами и сертификатами Let’s Encrypt.

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