Установка и настройка панели Pterodactyl

Время чтения: 6 мин. Обновлено: 11 февраля 2026

В данной статье мы поговорим о панели управления 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/php

3) С помощью команд 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/pterodactyl

2) Скачиваем с официального аккаунта 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>&1

10) Далее необходимо создать службу 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.service

12) Удаляем стандартный файл 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. Для входа необходимо указать логин и пароль, который вы вводили при создании пользователя.

Комментарии ()

    Популярные статьи