Обзор развертывания 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
Для запуска используйте:
Команда поднимает контейнер, который автоматически запрашивает сертификаты Let’s Encrypt и обслуживает HTTPS‑трафик для всех доменов, перечисленных в /data/nginx/user_conf.d.
2. EasyPanel¶
После установки EasyPanel с помощью официального скрипта (curl -sSL https://get.easypanel.io | sh), контейнер автоматически запускается в фоне на порту 3000. Для обновления сервиса:
3. Traefik (опционально)¶
Если требуется использовать Traefik вместо Nginx‑certbot, конфигурационные файлы генерируются из шаблонов traefik_static.yml.j2 и traefik_dynamic_easypanel.yml.j2. После создания docker-compose.yml для Traefik выполните:
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.