Как Pelican Panel заменяет старые панели для игровых серверов
Каждый, кто хоть раз пытался поднять выделенный сервер для Minecraft, DayZ или Satisfactory на чистой виртуалке, знает эту боль. Сначала ставишь нужную версию Java или SteamCMD. Потом разгребаешь конфликты библиотек, настраиваешь автоперезапуск через systemd и думаешь, как выдать друзьям доступ к консоли без SSH-ключей от всего хоста.
Многие годы стандартом в этой нише оставался Pterodactyl. Проект отличный, но его кодовая база и стек админки заметно устарели, а обновления выходят редко. На смену ему пришел открытый проект Pelican Panel, который переосмыслил архитектуру управления игровыми серверами.
Что под капотом
Архитектура системы разделена на две независимые части: веб-панель и агент хоста.
Веб-часть Pelican Panel написана на Laravel и FilamentPHP. Она отвечает за интерфейс, авторизацию пользователей, учет прав, распределение ресурсов и работу с базами данных. За счет Filament панель получила чистый интерфейс, где удобно распределять роли администраторов и мониторить загрузку узлов.
Вторая часть называется Wings. Это легковесный демон на Go, который ставится непосредственно на ноду с серверами. Веб-панель шлет команды в Wings по защищенному API, а демон управляет контейнерами Docker.
Хост-система остается чистой. Каждый игровой процесс запускается в изолированном контейнере с четко заданными лимитами по оперативной памяти, процессору и диску. Если сервер Palworld начнет бесконтрольно пожирать память из-за утечки, демон просто удержит его в рамках лимита или перезагрузит, не уронив соседние инстансы.
[ Веб-интерфейс Pelican ]
(Laravel + Filament)
│
REST API / WebSockets
│
▼
[ Демон Wings (Go) ]
│
Docker API (Socket)
┌─────────┴─────────┐
▼ ▼
[ Docker: MC ] [ Docker: CS2 ]
Готовые шаблоны конфигураций
В экосистеме Pelican шаблоны запуска называют «яйцами» (Eggs). Это JSON-манифесты, в которых описаны базовый образ Docker, переменные окружения, стартовые скрипты и правила установки файлов игры.
Панель поддерживает огромный набор готовых конфигураций:
- Игры через SteamCMD: Counter-Strike, Rust, ARK, 7 Days to Die, Enshrouded, Project Zomboid.
- Сборки Minecraft: Vanilla, Paper, Sponge, BungeeCord, Waterfall.
- Голосовые серверы: TeamSpeak, Mumble, инстансы Lavalink.
- Discord-боты и вспомогательные сервисы на Python, Node.js, Java.
- Базы данных и мониторинг: Redis, PostgreSQL, Prometheus, Grafana.
Если нужной игры нет в стандартном репозитории, шаблон легко написать самостоятельно. Достаточно указать Docker-образ и скрипт загрузки бинарников.
Практический пример: запуск и изоляция
В повседневной работе Pelican берет на себя рутину:
- Создание пользователя и выдача прав. Можно дать другу доступ только к просмотру консоли и кнопке перезапуска, спрятав настройки сети и редактирование файлов.
- Встроенный файловый менеджер и SFTP. Пользователи загружают моды и правят конфиги прямо из браузера или через любимый FTP-клиент, не выходя за пределы своей папки.
- Расписания и триггеры. Бэкапы по расписанию в S3-хранилище, перезапуск по крону и отправка команд в консоль сервера без костылей в crontab.
- Управление портами. Панель ведет учет выделенных портов и распределяет их между контейнерами без риска занять чужой порт.
Кому проект пригодится
Если вы держите выделенный сервер дома или арендуете VPS для совместных игр с друзьями, Pelican избавит от возни в терминале. Можно один раз настроить ноду и разворачивать новые игры в пару кликов мыши.
Для небольших игровых хостингов и сообществ это полноценная замена коммерческим решениям. Проект распространяется под открытой лицензией AGPLv3, активно обновляется и из коробки дружит с современным стеком PHP и Docker.
Документация и инструкции по установке доступны на официальном сайте pelican.dev, а исходники панели можно изучить в репозитории проекта на GitHub.
