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

Обзор развертывания 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. Процесс включает:

  1. Установку системных зависимостей (PHP 8.3, MariaDB, Redis, Nginx).

  2. Загрузку и распаковку исходного кода панели.

  3. Настройку окружения через файл .env.

  4. Установку зависимостей через composer.

  5. Выполнение миграций базы данных и создание администратора.

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

  • Пользователь приложения: Все файлы в директории /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 и перезапуск контейнеров:

docker compose pull && docker compose up -d
Также для панели может потребоваться обновление кода через 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.

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