1589684513868.png

Приветствую, юный(или не очень) серверостроитель. Так как многие испытывают некоторые проблемы с установкой панели Pterodactyl, было решено написать данный гайд. Он написан на основе оригинальной документации, доступной на официальном сайте.

Демо-версия панели

0. Что такое Pterodactyl, терминология, плюсы и минусы.
Pterodactyl - это open-source панель для управления игровыми серверами, написанная на PHP7, NodeJS и Go. Разработанная с упором на безопасность, она запускает все сервера в Docker-контейнерах и предоставляет при этом администраторам и пользователям удобный и интуитивно-понятный интерфейс
Теперь можно перейти к плюсам и минусам.

Структура всей системы:
1589714561650.png
Плюсы:
  • Повышенная безопасность. Если кто-то воспользуется каким-либо эксплоитом, позволяющим выполнять произвольный код и/или модифицировать файловую систему, он не сможет ничего сделать на хост машине (за пределами контейнера).
  • Удобный интерфейс управления. Не нужно постоянно подключаться к серверу через SSH, в отличии от LGSM, позволяющего управлять серверами только локально.
  • Легкое масштабирование. Можно легко расширять свою сетку серверов, в том числе на других локациях.
  • Контроль над ресурсами. Благодаря Docker, можно тонко контролировать ресурсы, доступные серверам для использования.
  • Можно использовать для организации хостинга
Минусы:
  • В текущем релизе нет функции для резервного копирования
  • Использование плагинов с жёсткой привязкой по IP немного снижает уровень безопасности, предоставляемый Docker по-умолчанию
  • Сложен для установки простому пользователю
  • Нельзя запускать сервера от root
Docker - ПО для автоматизации развертывания и управления приложениями в средах с поддержкой контейнеризации.

Panelанель)— Обозначает саму панель Pterodactyl, которая позволяет добавлять новые ноды(узлы) и сервера.

Nodeода, узел) — Физическая машина, на которой запущен демон.

Daemon(Демон, сервис) — Сервис, написанный на Nodejs, который соединяет Docker и Панель для безопасного управления серверами через Панель.

Server(Сервер) — В нашем случае, сервер - это конкретный экземпляр игрового сервера, запущенный через Панель. Он создается на Ноде и их может быть некоторое количество штук.

Container(Контейнер) — Каждый сервер запускается внутри изолированного контейнера для применения каких-либо ограничений на ресурсы(например, CPU и RAM) и устранения каких-либо пересечений с другими серверами на той же ноде. Они создаются и запускаются с помощью Docker.

Nest(Гнездо) — Каждое гнездо используется определенным типом игровых серверов, например для Minecraft, Teamspeak или Terraria и могут содержать несколько яиц.

Egg(Яйцо) — Каждое яйцо обычно используется чтобы хранить настройки для конкретного типа игры, например, Vanilla, Spigot или Bungeecord для Minecraft.

Требования для установки Pterodactyl

Для начала, вы должны иметь базовые знания в области администрирования Linux. Хотя бы знать для чего используется apt update, и кто такой root пользователь.

Если с этим никаких проблем нет, то самое время ознакомиться с системными требованиями веб-части.
Для начала, подразумевается что вы используете свой собственный сервер (будь-то VDS или DS). Работа на shared-хостинге возможна, но не гарантирована.
(актуально для VDS) На нодах будет использоваться система виртуализации, отличная от OpenVZ(работа Pterodactyl на OpenVZ не гарантирована)
Имеется доменное имя(или поддомен)

Таблица совместимости операционных систем:
Операционная системаВерсияПоддержкаЗаметка
Ubuntu18.04✅Документация написана основываясь именно на этой ОС
20.04✅
CentOS7✅Необходимы доп. репозитории
8✅Все необходимые пакеты есть в репозиториях по-умолчанию
Debian9✅Необходимы доп. репозитории
10✅Все необходимые пакеты есть в репозиториях по-умолчанию


Перейдем к необходимым пакетам/зависимостям:

PHP 7.2 со следующими расширениями: cli, openssl, gd, mysql, PDO, mbstring, tokenizer, bcmath, xml или dom, curl, zip, и fpm для nginx
MySQL 5.7 ИЛИ MariaDB 10.1.3 и выше
Redis (redis-server)
Веб-сервер (Apache, NGINX, Caddy, и т.д.)
curl
tar
unzip
git
composer

Как вы уже поняли, установка панели будет рассматриваться на основе Ubuntu 18.04 LTS, на "чистую" систему. Инструкции по установке зависимостей на иные операционные системы доступны в разделе community-гайдов.
Следующая статья из серии Введение