Обзор развертывания Pterodactyl на сервере¶
Предварительные требования¶
Для корректной работы приложения требуются следующие параметры системы:
-
Операционная система: Ubuntu (рекомендуемая версия
jammy). -
Права доступа: Права суперпользователя (
root) для установки системных пакетов и управления сервисами. -
Порты:
-
80(HTTP) — для проверки сертификатов Certbot и перенаправления на HTTPS. -
443(HTTPS) — основной порт панели управления. -
12333(TCP/SSL) — порт для взаимодействия с Wings.
-
FDQN итоговой панели на домене hostkey.in¶
Доступ к панели осуществляется через динамически формируемый поддомен.
| Параметр | Значение |
|---|---|
| Префикс | pterodactyl |
| Домен | hostkey.in |
| Полный шаблон | pterodactyl{Server_ID_from_Invapi}.hostkey.in |
Структура файлов и каталогов¶
Основные директории, используемые в системе:
-
/var/www/pterodactyl— корневая директория приложения Pterodactyl Panel. -
/root/nginx— конфигурационные файлы Docker-контейнера Nginx с Certbot. -
/etc/letsencrypt— хранилище SSL-сертификатов. -
/etc/systemd/system/pteroq.service— файл службы очереди Pterodactyl.
Процесс установки приложения¶
Развертывание выполняет установку панели Pterodactyl последней доступной версии из репозитория GitHub. Процесс включает:
-
Установку системных зависимостей (PHP 8.3, MariaDB, Redis, Nginx).
-
Загрузку и распаковку исходного кода панели.
-
Настройку окружения через файл
.env. -
Установку зависимостей через
composer. -
Выполнение миграций базы данных и создание администратора.
Права доступа и безопасность¶
-
Пользователь приложения: Все файлы в директории
/var/www/pterodactylпринадлежат пользователюwww-dataи группеwww-data. -
Безопасность PHP: Настроены ограничения на размер загружаемых файлов (
upload_max_filesize=100M). -
Защита от атак: В конфигурации Nginx включена защита от атаки HTTPoxy (параметр
fastcgi_param HTTP_PROXY "";). -
Брандмауэр: Рекомендуется открывать только порты 80, 443 и 12333.
Базы данных¶
Для работы панели используется локальная база данных MariaDB.
| Параметр | Значение |
|---|---|
| Имя базы данных | panel |
| Пользователь БД | pterodactyl |
| Хост подключения | 127.0.0.1:3306 |
Контейнеры Docker и их запуск¶
В системе используется один вспомогательный контейнер для автоматического управления SSL-сертификатами через Certbot.
Контейнер Nginx-Certbot:
-
Образ:
jonasal/nginx-certbot:latest -
Порты: Использует режим
network_mode: host. -
Тома (volumes):
-
nginx_secrets:/etc/letsencrypt— для хранения сертификатов. -
/data/nginx/user_conf.d:/etc/nginx/user_conf.d— пользовательские конфигурации Nginx. -
/var/www/pterodactyl/public:/var/www/pterodactyl/public:ro— чтение статических файлов панели для проверки домена.
-
-
Переменные окружения:
CERTBOT_EMAIL=hkadm@hostkey.com. -
Политика перезапуска:
unless-stopped.
Инструкция по обновлению приложения¶
Обновление выполняется через выполнение команд pull и перезапуск контейнеров:
git pull или повторную распаковку архива с последующим выполнением команд php artisan migrate. Настройки прав¶
Для обеспечения корректной работы веб-сервера установлены следующие права:
-
Директории
storageиbootstrap/cacheдолжны быть доступны для записи пользователюwww-data. -
Рекурсивно все файлы в
/var/www/pterodactylпринадлежатwww-data:www-data.
Расположение конфигурационных файлов и данных¶
-
Конфигурация приложения:
/var/www/pterodactyl/.env -
Конфигурация Nginx (хост):
/etc/nginx/sites-available/pterodactyl.conf -
Конфигурация Docker Compose:
/root/nginx/compose.yml
Доступные порты для подключения¶
| Порт | Назначение | Протокол |
|---|---|---|
| 80 | HTTP (перенаправление на HTTPS) | TCP |
| 443 | Панель управления Pterodactyl | TCP/SSL |
| 12333 | Wings API / WebSocket | TCP/SSL |
Запуск, остановка приложения¶
Управление системными служсами выполняется следующими командами:
-
Перезапуск очереди (Worker):
systemctl restart pteroq -
Перезапуск PHP-FPM:
systemctl restart php8.3-fpm -
Перезапуск MariaDB:
systemctl restart mariadb -
Перезапуск Redis:
systemctl restart redis-server
Прокси серверы¶
Для обеспечения работы HTTPS используется связка из Nginx и Certbot:
-
Nginx (хост): Выступает в роли основного прокси, обрабатывает SSL-соединения на порту 443 и перенаправляет запросы к PHP-FPM через сокет или TCP.
-
Certbot: Автоматически получает и обновляет сертификаты Let's Encrypt через Docker-контейнер
nginx-certbot. -
SSL: Используются протоколы TLSv1.2 и TLSv1.3.