Гид по технологиям

Pterodactyl: установка, настройка и создание игровых серверов

8 min read Игровые серверы Обновлено 01 Nov 2025
Pterodactyl: установка и настройка серверов
Pterodactyl: установка и настройка серверов

Быстрые ссылки

  • Установка Pterodactyl и демона
  • Настройка конфигурации сервера
  • Создание сервера

Схема взаимодействия панели Pterodactyl и демонов на узлах

Введение

Pterodactyl — это платформа управления серверами, использующая контейнеры Docker для изоляции экземпляров приложений. Изначально ориентирована на игровые серверы (например, Minecraft, Rust и др.), но подходит и для других headless-сервисов. Панель управления (Control Panel) предоставляет веб-интерфейс и API; демоны (Wings) работают на хостах и выполняют контейнеры.

Краткое определение: Docker — инструмент контейнеризации, который упаковывает зависимости и код приложения в образ, пригодный для многократного развертывания.

Важно: в Pterodactyl есть чёткое разделение ролей — панель управляет, демоны исполняют. Это даёт масштабируемость и удобство управления несколькими узлами.

Установка Pterodactyl и демона

Перед началом

  • Минимальные требования: VPS или выделенный сервер для панели, одна или несколько машин для демонов.
  • Базовые пакеты: Docker, Node.js (для Wings), база данных MySQL/MariaDB, PHP и веб-сервер для панели (обычно Nginx). Установка панели требует LAMP/LEMP-подобного стека.
  • Настройте резервные копии базы данных и файлов панели перед обновлениями.

Обзор процесса

  1. Установить панель (Control Panel) на VPS: настроить веб-сервер, PHP, SSL и базу данных.
  2. На каждом хосте установить Wings (демон): Docker + Node.js + certbot для TLS.
  3. Зарегистрировать узлы (Nodes) в панели и привязать конфигурацию демона через сгенерированный JSON.

Примечание: полный пошаговый мануал по установке панели хранится в официальной документации Pterodactyl и регулярно обновляется. Здесь — практическое руководство и рекомендации.

Детали установки демона

Демон управляет контейнерами Docker. Он отвечает за запуск, остановку, мониторинг и аллокацию ресурсов для игровых серверов.

Основные шаги:

  • Установите Docker (официальная инструкция Docker для вашей ОС).
  • Установите Node.js (совместимая версия для Wings).
  • Получите SSL-сертификат с помощью certbot, если планируется защищённое соединение панели и демона.
  • Скопируйте сгенерированный JSON-конфиг в файл демона и запустите Wings.

Пример: файл конфигурации демона нужно поместить в

/srv/daemon/config/core.json

Запуск демона можно выполнить через sudo npm start, но для надёжности рекомендуется создать systemd-сервис.

[Unit]
Description=Pterodactyl Wings Daemon
After=docker.service

[Service]
User=root
#Group=some_group
WorkingDirectory=/srv/daemon
LimitNOFILE=4096
PIDFile=/var/run/wings/daemon.pid
ExecStart=/usr/bin/node /srv/daemon/src/index.js
Restart=on-failure
StartLimitInterval=600

[Install]
WantedBy=multi-user.target

Сохраните это как wings.service в /etc/systemd/system/, затем выполните:

systemctl enable --now wings

Если узел не прикреплён к панели, проверьте настройки брандмауэра и открытые порты (обычно 8080/2022/8443 или настроенные вами порты), а также корректность TLS-сертификата.

Совет: на OVH папка расположена не в /srv/, а часто в /home/daemon-data. Укажите корректную директорию при настройке узла.

Вкладка Locations в панели Pterodactyl

Регистрация узла в панели

  1. В панели создайте теги локаций (Locations) — это метки для организации узлов (например, eu-west, us-east). Требуется хотя бы одна.
  2. Перейдите в Nodes → Create Node. Введите имя, описание и доменное имя, по которому будет доступен демон.
  3. Укажите директорию демона и лимиты ресурсов узла (память, диск). Эти значения действуют в пределах всей ноды.
  4. Нажмите Create — система выдаст JSON. Этот JSON нужно вставить в /srv/daemon/config/core.json на хосте и перезапустить Wings.

Создание нового узла в Pterodactyl

Если всё настроено верно, узел будет в статусе “online” в панели.

Настройка конфигурации серверов — Eggs и Nests

Понимание терминов:

  • Nest — категория игр/приложений (например, Minecraft).
  • Egg — конкретная конфигурация запуска внутри Nests (vanilla, Paper, Forge и т.д.).

Egg содержит набор переменных, Docker-образ и команду запуска. Изменение Egg — продвинутая задача, но она даёт максимальный контроль.

Список Nests и Eggs в Pterodactyl

Что можно менять в Egg

  • Docker-образ (image) — указывает, какой образ будет использоваться для контейнера.
  • Команда запуска (startup) — строка запуска сервера.
  • Переменные (Variables) — шаблонные параметры, которые передаются в командную строку.

Настройки Docker-образа и команд запуска в Egg

Рекомендуется:

  • Форкать и хранить свои образы в приватном реестре или GitHub Packages / Docker Hub с версионированием.
  • В entrypoint.sh добавлять предварительные шаги: загрузка билдов, применение конфигураций, переключение веток.
  • Использовать переменные Egg для конфигурации per-server, вместо постоянного изменения образа.

Таблица переменных Egg: пример конфигурации

Практика: у меня entrypoint обновляет ветку сервера с CI-сервера (TeamCity/GitLab CI), затем запускает основную бинарную/Java-команду.

Создание сервера в панели

Пошагово:

  1. Servers → Create Server.
  2. Укажите имя, описание и назначьте владельца (Server Owner) — иначе возникнет ошибка.
  3. Выберите Node и Allocation (IP/порт). Добавьте дополнительные allocations для RCON/UDP при необходимости.

Форма создания сервера: выбор узла и распределение портов

  1. Настройте лимиты ресурсов: память, диск, CPU. Если ставите значения в 0 — ограничения отключены и система не ограничивает потребление.

Настройки ресурсов: память, диск, CPU для сервера

  1. Выберите Nest и Egg; при необходимости переопределите переменные и укажите номера портов, соответствующие allocations.

Выбор Nest и Egg при создании сервера

  1. Нажмите Create. Платформа отправит запрос демону; первый запуск занимает несколько минут, так как происходит подтягивание образа и первичная установка.

  2. После готовности открывайте Console → просматривайте логи и выполняйте команды.

Консоль сервера: вывод логов и управление

В консоли также доступны: файловый менеджер (FTP с chroot в контейнер), учётные записи FTP для доступа к файлам, пользователи сервера и расписания задач (schedules) — например, ежедневные рестарты.

В разделе Configuration можно редактировать переменные сервера и триггерить Rebuild Docker Container. Rebuild не удаляет данные, но пересобирает контейнер, поэтому необходим после правки entrypoint или образа.

Безопасность и надёжность

Рекомендации по защите инфраструктуры:

  • TLS: всегда используйте HTTPS/SSL между панелью и демонами.
  • Сегментация сети: панель в отдельной сети/подсети, доступ к ней через VPN или ограниченный список IP.
  • Минимизация прав: запускайте Wings под непривилегированным пользователем, если это возможно.
  • Мониторинг: интегрируйте метрики (Prometheus/Grafana) и логирование (ELK/Graylog).
  • Бэкапы: регулярные резервные копии базы данных и конфигураций. Храните бэкапы отдельно от рабочих узлов.
  • Обновления образов: используйте подписанные/проверенные образы и регулярно обновляйте их.
  • Защита Docker: используйте cgroups, seccomp, AppArmor/SELinux и ограничивайте привилегии контейнеров.

Совет: для FTP доступа включайте chroot и используйте отдельные учётные записи с ограниченными правами.

Шаблон SOP для добавления новой ноды (короткая процедура)

  1. Подготовить машину: установить Docker, Node.js, открыть необходимые порты.
  2. На панели создать Location и Node с корректными параметрами.
  3. Скопировать JSON-конфиг из панели и поместить в /srv/daemon/config/core.json на хосте.
  4. Установить и включить wings.service через systemd.
  5. Проверить статус в панели и выполнить тестовый запуск контейнера.
  6. Добавить мониторинг и бэкап-политику.

Роль‑ориентированные чеклисты

Администратор (DevOps)

  • Настроить SSL и брандмауэр.
  • Обновить ОС и Docker.
  • Настроить systemd для Wings.
  • Настроить мониторинг и алертинг.

Разработчик/Инженер сборки

  • Подготовить Dockerfile и entrypoint.sh.
  • Организовать CI/CD (сборка образов и публикация в реестр).
  • Протестировать поведение entrypoint при рестарте.

Оператор игрового сервера

  • Создать сервер в панели, проверить выделение портов.
  • Настроить переменные Egg и расписание (рестарт, бэкап).
  • Проверять логи и отвечать на инциденты.

Критерии приёмки

  • Сервер в панели в состоянии “online” и отвечает в консоли.
  • Контейнер запущен без ошибок в логах 5 минут после старта.
  • Резервная копия базы данных настроена и проверена.
  • Порты и SSL корректно работают, проверено соединение между панелью и демоном.

Типичные проблемы и способы устранения

Проблема: нода не прикрепляется к панели

  • Проверьте JSON-конфиг и правильность домена.
  • Убедитесь, что certbot сгенерировал корректный сертификат.
  • Проверьте брандмауэр, откройте порты, используемые Wings.

Проблема: контейнер постоянно рестартует

  • Откройте Console и просмотрите ошибки в логах.
  • Проверьте правильность переменных в Egg и команду запуска.
  • Убедитесь, что образ содержит все зависимости.

Проблема: нехватка ресурсов на ноде

  • Установите лимиты в панели или добавьте дополнительные узлы.
  • Проверьте процессы на хосте: используют ли они swap или перегружают CPU.

Модели зрелости инфраструктуры (уровни)

  • Уровень 1 — Один сервер, панель и демон на одном хосте. Подходит для тестов и локальной разработки.
  • Уровень 2 — Панель на отдельном VPS; один или несколько демонов на выделенных хостах. Резервные копии настроены.
  • Уровень 3 — Множественные ноды в разных регионах, автоматизированный CI/CD для образов, мониторинг и алертинг, изолированные сети.

Решение при миграции узла на новый хост

  1. Создайте новый узел в панели и настройте ресурсы.
  2. На новом хосте установите Docker и Wings.
  3. Скопируйте конфигурации и данные (например, игровые миры) из старого контейнера в хранилище.
  4. Тестируйте на новом узле, затем переключите allocation или обновите DNS.
  5. Убедитесь в целостности бэкапов и сохраните старый узел как «канарейку» на случай отката.

Примеры полезных сниппетов

Systemd unit уже приведён выше — сохраните как /etc/systemd/system/wings.service и включите автозапуск.

Пример простого entrypoint.sh (контролируемая последовательность действий):

#!/bin/sh
set -e
# Обновление сервера или получение билда
# git pull origin main || true
# placeholder: загрузка артефактов из CI
# Запуск основного процесса (замените на свою команду)
exec java -Xmx${MEMORY} -jar server.jar nogui

Используйте переменные окружения, определённые в Egg, для динамической подстановки.

Decision tree: выбрать, где ставить панель и демоны

flowchart TD
  A[Начало] --> B{Нужна ли высокая доступность?}
  B -- Да --> C[Панель на отдельном VPS с бэкапом и HA'mysql']
  B -- Нет --> D[Панель и демон на одном VPS для тестов]
  C --> E{Сколько регионов?}
  E -- Много --> F[Несколько демонов в регионах]
  E -- Один --> G[Один демон, масштабирование по ресурсам]
  D --> G

Глоссарий (1‑строчные определения)

  • Панель — веб-интерфейс Pterodactyl для управления серверами.
  • Wings — демон Pterodactyl, запускающий Docker-контейнеры.
  • Egg — шаблон сервера: образ, переменные и команда запуска.
  • Nest — категория яиц, объединяющая похожие серверы.
  • Allocation — привязка IP/порта к серверу.

Заключение

Pterodactyl предоставляет мощную и гибкую платформу для управления игровыми серверами на основе Docker. Ключевые задачи — корректная настройка панели и демонов, формирование надежных Docker-образов и контроль доступа. Для продуктивной эксплуатации уделите внимание безопасности, мониторингу и автоматизации CI/CD для образов.

Important: начните с тестовой среды, затем постепенно добавляйте узлы и автоматизацию.

Краткое резюме в конце статьи приведено ниже.

Сводка

  • Pterodactyl разделяет управление (панель) и исполнение (демоны).
  • Eggs и Nests дают гибкость в конфигурации серверов.
  • Используйте TLS, мониторинг и резервные копии.
  • Документируйте SOP и тестируйте миграции заранее.
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Троян Herodotus: как он действует и как защититься
Кибербезопасность

Троян Herodotus: как он действует и как защититься

Включить новое меню «Пуск» в Windows 11
Windows 11

Включить новое меню «Пуск» в Windows 11

Панель полей PivotTable в Excel — руководство
Excel

Панель полей PivotTable в Excel — руководство

Включить новый Пуск в Windows 11 — инструкция
Windows

Включить новый Пуск в Windows 11 — инструкция

Как убрать дубликаты Диспетчера задач Windows 11
Windows

Как убрать дубликаты Диспетчера задач Windows 11

Как просмотреть историю просмотров Reels в Instagram
Социальные сети

Как просмотреть историю просмотров Reels в Instagram