Обзор развертывания Pterodactyl на сервере¶
Предварительные требования¶
Для корректной работы приложения требуются следующие параметры и системные условия:
-
Операционная система: Ubuntu (рекомендуемая версия
jammy). -
Пользователь:
www-data(для веб-сервисов) иroot. -
Доменное имя: Требуется наличие настроенного домена для работы через SSL.
-
Порты:
-
80/tcp: HTTP (для проверки Certbot). -
443/tcp: HTTPS (основной интерфейс панели). -
12333/tcp: Порт для Wings (проксирование).
FQDN итоговой панели на домене hostkey.in¶
| Параметр | Значение |
|---|---|
| Префикс | pterodactyl |
| Домен | hostkey.in |
| Полный шаблон | pterodactyl{Server_ID_from_Invapi}.hostkey.in |
Структура файлов и каталогов¶
Основные пути к файлам в системе:
-
/var/www/pterodactyl— директория установки приложения. -
/root/nginx— конфигурация контейнера для управления SSL-сертификатами. -
/etc/letsencrypt/live/{Server_ID_from_Invapi}.hostkey.in/— место хранения SSL-сертификатов. -
/var/log/pterodactyl-access.log— лог доступа веб-панели. -
/var/log/pterodactyl-error.log— лог ошибок веб-панели.
Процесс установки приложения¶
Развертывание Pterodactyl выполняется в несколько этапов:
-
Подготовка системы: Обновление кэша пакетов и установка системных зависимостей (
curl,gnupg,software-properties-commonи др.). -
Настройка репозиториев: Добавление официальных репозиториев PHP (Sury) и Redis для установки актуальных версий ПО.
-
Установка компонентов: Установка веб-сервера Nginx, базы данных MariaDB, кэширующего слоя Redis, а также интерпретатора PHP 8.3 и его расширений (
mysql,mbstring,xml,gdи др.). -
Загрузка приложения: Скачивание последнего стабильного релиза Pterodactyl с GitHub, распаковка архива в
/var/www/pterodactyl. -
Настройка окружения:
-
Создание файла
.envна основе примера. -
Генерация уникального
APP_KEY. -
Настройка параметров базы данных, Redis и часового пояса (
Europe/Amsterdam). -
Развертывание БД: Создание базы данных
panel, пользователя и выполнение миграций (структуры таблиц). -
Настройка веб-сервера: Конфигурирование Nginx для работы через HTTPS с использованием SSL-сертификатов Let's Encrypt.
Права доступа и безопасность¶
-
Владелец файлов: Все файлы в директории
/var/www/pterodactylпринадлежат пользователюwww-data. -
Безопасность PHP: Настроен параметр
fastcgi_param HTTP_PROXY "";для защиты от атак типа HTTPoxy. -
Ограничения: Доступ к скрытым файлам (
.ht) запрещен на уровне веб-сервера.
Базы данных¶
Для работы панели используется MariaDB:
-
Имя базы данных:
panel. -
Пользователь:
pterodactyl. -
Метод подключения: Локальное соединение через сокет
/run/mysqld/mysqld.sockили127.0.0.1:3306.
Контейнеры Docker и их запуск¶
В системе используется контейнер для автоматизации получения SSL-сертификатов:
| Имя образа | Порты | Тома (volumes) | Переменные окружения | Политика перезапуска |
|---|---|---|---|---|
jonasal/nginx-certbot:latest | host mode | nginx_secrets:/etc/letsencrypt, /data/nginx/user_conf.d:/etc/nginx/user_conf.d, /var/www/pterodactyl/public:/var/www/pterodactyl/public:ro | CERTBOT_EMAIL=hkadm@hostkey.com | unless-stopped |
Кастомные скрипты и дополнительные настройки¶
Для обеспечения работы очереди задач (Queue Worker) создается системная служба pteroq:
-
Путь:
/etc/systemd/system/pteroq.service. -
Назначение: Запуск процесса
php artisan queue:workдля обработки фоновых задач в очередяхhigh,standardиlow.
Также настроена задача планировщика (cron) для автоматического запуска команд Artisan по расписанию.
Инструкция по обновлению приложения¶
Для обновления основной панели Pterodactyl необходимо выполнить следующие действия:
-
Перейти в директорию
/var/www/pterodactyl. -
Выполнить команду обновления через Composer:
php 8.3 /usr/bin/composer install --no-dev --optimize-autoloader --no-interaction. -
При необходимости обновить базу данных командами:
php 8.3 artisan migrate --force.
Расположение конфигурационных файлов и данных¶
-
Конфигурация приложения:
/var/www/pterodactyl/.env -
Конфигурация Nginx (веб-панель):
/etc/nginx/sites-available/pterodactyl.conf -
Конфигурация Wings:
/etc/wings.yml
Доступные порты для подключения¶
| Порт | Назначение | Протокол |
|---|---|---|
443 | Веб-интерфейс панели (HTTPS) | TCP |
12333 | Wings API / Proxy | TCP |
Запуск, остановка приложения¶
Управление системными служчами осуществляется через systemctl:
-
Перезапуск очереди задач:
systemctl restart pteroq -
Проверка статуса очереди:
systemctl status pteroq -
Перезагрузка веб-сервера:
systemctl reload nginx