Обзор развертывания панели управления Pterodactyl на сервере¶
Предварительные условия и основные требования¶
Для развертывания требуется сервер под управлением Ubuntu Jammy (22.04 LTS). Должны быть соблюдены следующие системные компоненты и требования:
-
Операционная система: Ubuntu 22.04 (Jammy Jellyfish)
-
Привилегии: Права root или sudo для управления сервисами и установки пакетов
-
Требования к домену: Для завершения SSL (SSL termination) через Let's Encrypt требуется валидный FQDN в домене
hostkey.in. -
Необходимые пакеты:
-
PHP 8.2 (с определенными расширениями)
-
Nginx
-
MariaDB Server
-
Redis Server
-
Git, Unzip, Curl и Cron
-
FQDN финальной панели¶
Приложение доступно по следующему формату FQDN: <prefix><server_id>.hostkey.in (например, pterodactyl123.hostkey.in)
Структура файлов и директорий¶
Файлы приложения и конфигурационные данные хранятся в следующих локациях:
| Компонент | Путь |
|---|---|
| Директория установки приложения | /var/www/pterodactyl |
| Конфигурация Nginx в Docker | /root/nginx |
| Пользовательские конфигурации Nginx | /data/nginx/user_conf.d/ |
| Сертификаты Let's Encrypt (Docker) | /etc/letsencrypt (через volume nginx_secrets) |
| Маркер инициализации Pterodactyl | /var/www/pterodactyl/.ansible_ptero_initialized |
Процесс установки приложения¶
Установка выполняется путем загрузки последнего релиза Pterodactyl Panel с GitHub. Процесс включает:
-
Загрузку
panel.tar.gzв/tmp. -
Распаковку архива в
/var/www/pterodactyl. -
Установку PHP-зависимостей через Composer v2.
-
Настройку окружения с помощью
.env. -
Запуск миграций базы данных и создание (seeding) начального пользователя администратора.
Права доступа и безопасность¶
Безопасность обеспечивается на нескольких уровнях:
-
Межсетевой экран/Управление портами: Приложение использует специфические внутренние и внешние порты для связи.
-
Права веб-сервера: Все файлы в
/var/www/pterodactylпринадлежат пользователю и группеwww-dataс правами0755на директории. -
SSL/TLS: Сертификаты Let's Encrypt управляются через Certbot, обеспечивая шифрование HTTPS для всего веб-трафика.
-
Заголовки безопасности (Security Headers): Nginx настроен для предотвращения доступа к скрытым файлам (например,
.ht).
Базы данных¶
Приложение использует MariaDB в качестве основного движка базы данных.
| Параметр | Значение/Настройка |
|---|---|
| Имя базы данных | panel |
| Пользователь базы данных | pterodactyl |
| Хост подключения | 127.0.0.1:306 |
| Место хранения | Управляется системными директориями MariaDB |
Docker-контейнеры и их развертывание¶
Docker-контейнер используется специально для управления Nginx и автоматического обновления SSL-сертификатов через Certbot.
-
Image:
jonasal/nginx-certbot:latest -
Метод развертывания: Развертывается с помощью
docker composeиз/root/nginx/compose.yml. -
Network Mode:
host -
Volumes:
-
nginx_secrets(внешний volume), примонтированный к/etc/letsencrypt. -
/data/nginx/user_conf.d, примонтированный к/etc/nginx/user_conf.d. -
/var/www/pterodactyl/public, примонтированный в режиме только для чтения (ro) к/var/www/pterodactyl/public.
-
Прокси-серверы¶
Развертывание использует двухслойный подход к проксированию:
-
Dockerized Nginx (Certbot): Выступает в качестве основной точки входа, выполняя SSL termination и маршрутизацию трафика на PHP-FPM хоста через порт
9000или локальный сокет. -
Host Nginx: Настроен для обработки специфической логики сайта и служит резервным вариантом (fallback) / интерфейсом для панели.
Настройки прав доступа¶
Для обеспечения стабильности работы сервисов применяется следующая структура прав:
-
/var/www/pterodactyl: Владелецwww-data:www-data(рекурсивно). -
/etc/cron.d/pterodactyl: Режим0644. -
/root/nginx/compose.yml: Режим0644, владелецroot:root.
Расположение конфигурационных файлов и данных¶
| Файл/Директория | Путь |
|---|---|
| Основной конфиг окружения | /var/www/pterodactyl/.env |
| Конфигурация сайта Nginx | /etc/nginx/sites-available/pterodactyl.conf |
| Systemd сервис Pterodactyl | /etc/systemd/system/pteroq.service |
Доступные порты для подключения¶
Система использует следующие порты:
| Порт | Назначение |
|---|---|
80 | HTTP (перенаправление на HTTPS) |
443 | HTTPS (доступ к панели) |
12333 | SSL-связь Wings/Daemon |
3306 | Подключение к базе данных MariaDB |
6379 | Redis Cache/Queue |
8000 | Внутренний порт приложения |
Запуск, остановка и обновление¶
Управление сервисами осуществляется через systemctl. Для управления фоновыми процессами используются следующие команды:
-
Pterodactyl Queue Worker:
-
Запуск:
systemctl start pteroq -
Автозагрузка:
systemctl enable pteroq
-
-
Веб-сервер (Nginx):
- Перезапуск:
systemctl restart nginx
- Перезапуск:
-
База данных (MariaDB):
- Статус:
systemctl status mariadb
- Статус:
-
Docker Proxy:
- Развертывание/Перезапуск:
docker compose up -dв директории/root/nginx.
- Развертывание/Перезапуск: