Содержание:
В данной статье мы поговорим о панели управления Pterodactyl, как установить на VPS сервер и настроить работу панели.

Выбирайте VPS
Если вы ищите надежного провайдера для VPS, то смотрите подборку хостеров VPS.
ПерейтиЧто такое Pterodactyl?
Pterodactyl — это панель управления игровыми серверами с открытым исходным кодом, созданная на PHP, React и Go.
Преимуществами панели являются:
- Поддержка более 200 шаблонов для быстрой установки популярных игровых серверов;
- Гибкие настройки ресурсов серверов, мультипользовательских доступов;
- Имеет встроенный магазин для установки на сервера модов, плагинов;
- Присутствует консоль управления и мониторинг статистики серверов.
Для установки панели мы используем VPS сервер с операционной системой Ubuntu 24, работать наша панель будет от базы данных mariadb, Web-сервера nginx, redis для кэширования и php.
Подготовка VPS к установке Pterodactyl
Перед установкой панели нам необходимо установить на наш сервер php, redis, mariadb.
Что для этого мы делаем:
1) Устанавливаем несколько пакетов, необходимых нам для работы с репозиториями и безопасным скачиванием программного обеспечения:
apt -y install software-properties-common curl apt-transport-https ca-certificates gnupg
2) Добавляем репозиторий PHP, с использованием кодировки UTF-8:
LC_ALL=C.UTF-8 add-apt-repository -y ppa:ondrej/php3) С помощью команд curl и gpg мы импортируем GPG-ключ Redis, затем добавляем репозиторий Redis и обновляем список пакетов:
curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list
apt update
4) Устанавливаем PHP 8.3, MySQL, nginx, tar, git, Redis после установки PHP мы доустанавливаем необходимые модули.
apt -y install php8.3 php8.3-{common,cli,gd,mysql,mbstring,bcmath,xml,fpm,curl,zip} mariadb-server nginx tar unzip git redis-server
5) Для работы панели нам также необходимо установить на наш сервер composer следующей командой:
curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin —filename=composerСначала мы скачиваем на сервер инсталятор с официального сайта composer, а через php мы устанавливаем composer в каталог /usr/local/bin с нужным наименованием.

Установка и настройка панели Pterodactyl
Теперь мы приступаем к ключевой цели статьи — установке и настройке панели.
1) Создаем каталог, в котором будут располагаться файлы панели и переходим в данный каталог:
mkdir -p /var/www/pterodactyl
cd /var/www/pterodactyl2) Скачиваем с официального аккаунта Github разработчиков панели файлы, распаковываем файлы из архива в созданный нами каталог и даем для необходимых подкаталогов права 755:
curl -Lo panel.tar.gz https://github.com/pterodactyl/panel/releases/latest/download/panel.tar.gz
tar -xzvf panel.tar.gz
chmod -R 755 storage/* bootstrap/cache/3) Настройки, данные из панели будут сохраняться в базу данных. Вводим команду для первоначальной настройки mariadb:
mysql_secure_installationДалее заходим в mariadb, создаем пользователя, базу данных и даем нашему новому пользователю все права к базе данных:
mariadb -u root -p
CREATE USER 'pterodactyl'@'127.0.0.1' IDENTIFIED BY 'пароль_пользователя';
CREATE DATABASE panel;
GRANT ALL PRIVILEGES ON panel.* TO 'pterodactyl'@'127.0.0.1' WITH GRANT OPTION;
exit
4) Теперь мы копируем образец настроек сайта с .env.example на .env, произведем установку зависимостей и сгенерируем новый ключ шифрования приложения, также нам необходимо скопировать в безопасное место ключ шифрования для корректной работы API:
cp .env.example .env
COMPOSER_ALLOW_SUPERUSER=1 composer install --no-dev --optimize-autoloader
php artisan key:generate --force
grep APP_KEY /var/www/pterodactyl/.env
5) Основную среду Pterodactyl можно легко настроить с помощью нескольких встроенных в приложение команд интерфейса командной строки. На этом этапе мы настроим такие параметры, как сеансы, кэширование, учётные данные для доступа к базе данных:
php artisan p:environment:setup
php artisan p:environment:database
6) Создаём таблицы и добавляем начальные записи в базу данных, указанную в настройках панели:
php artisan migrate --seed --force
7) Создаём первого пользователя, с которого мы и сможем зайти в нашу панель:
php artisan p:user:make
8) Наша панель будет работать от Web-сервера nginx и php, чтобы при заходе в панель у нас не возникали проблемы с доступом нам необходимо изменить владельца каталогов и файлов на www-data:
chown -R www-data:www-data /var/www/pterodactyl/*9) Для автоматического запуска нашей панели нам необходимо создать задачу cron, для этого нам необходимо прописать команду crontab -e и указать следующую задачу:
* * * * * php /var/www/pterodactyl/artisan schedule:run >> /dev/null 2>&110) Далее необходимо создать службу pteroq.service, которая будет поддерживать работу нашей очереди в фоновом режиме. Эта очередь обрабатывает фоновые задачи, такие как отправка писем, уведомлений и другие процессы, необходимые для работы панели.:
nano /etc/systemd/system/pteroq.serviceВ файл добавляем следующий текст:
# Pterodactyl Queue Worker File
# ----------------------------------
[Unit]
Description=Pterodactyl Queue Worker
After=redis-server.service
[Service]
# On some systems the user and group might be different.
# Some systems use `apache` or `nginx` as the user and group.
User=www-data
Group=www-data
Restart=always
ExecStart=/usr/bin/php /var/www/pterodactyl/artisan queue:work --queue=high,standard,low --sleep=3 --tries=3
StartLimitInterval=180
StartLimitBurst=30
RestartSec=5s
[Install]WantedBy=multi-user.target
11) Включаем redis и нашу службу:
systemctl enable --now redis-server
systemctl enable --now pteroq.service12) Удаляем стандартный файл nginx - default, создаем файл конфигурации pterodactyl.conf, активируем данный файл конфигурации и перезапустим nginx
rm /etc/nginx/sites-enabled/default
nano /etc/nginx/sites-available/pterodactyl.conf
server {
# Replace the example <domain> with your domain name or IP address
listen 80;
server_name доменное имя или IP;
root /var/www/pterodactyl/public;
index index.html index.htm index.php;
charset utf-8;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
access_log off;
error_log /var/log/nginx/pterodactyl.app-error.log error;
# allow larger file uploads and longer script runtimes
client_max_body_size 100m;
client_body_timeout 120s;
sendfile off;
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/run/php/php8.3-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param PHP_VALUE "upload_max_filesize = 100M \n post_max_size=100M";
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param HTTP_PROXY "";
fastcgi_intercept_errors off;
fastcgi_buffer_size 16k;
fastcgi_buffers 4 16k;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
}
location ~ /\.ht {
deny all;
}
}
ln -s /etc/nginx/sites-available/pterodactyl.conf /etc/nginx/sites-enabled/pterodactyl.conf
systemctl restart nginxПосле произведенных нами действий мы заходим в браузер и в зависимости от настроек панели и nginx мы указываем IP/домен панели. Если все сделано верно, то откроется панель Pterodactyl. Для входа необходимо указать логин и пароль, который вы вводили при создании пользователя.

Предыдущая статья:
Установка и настройка Vesta на VPSСледующая статья:
Как установить панель BrainyCP на VPS
Комментарии ()