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

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

  1. Загрузку panel.tar.gz в /tmp.

  2. Распаковку архива в /var/www/pterodactyl.

  3. Установку PHP-зависимостей через Composer v2.

  4. Настройку окружения с помощью .env.

  5. Запуск миграций базы данных и создание (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.

Прокси-серверы

Развертывание использует двухслойный подход к проксированию:

  1. Dockerized Nginx (Certbot): Выступает в качестве основной точки входа, выполняя SSL termination и маршрутизацию трафика на PHP-FPM хоста через порт 9000 или локальный сокет.

  2. 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.
question_mark
Я могу вам чем-то помочь?
question_mark
ИИ Помощник ×