Полный гайд по установке Pterodactyl Panel и Wings
1. Выбор операционной системы
Pterodactyl поддерживает множество Linux-дистрибутивов. Выбирайте ту ОС, с которой вам проще работать.
⚠️ Важно: Pterodactyl не поддерживает большинство систем на базе OpenVZ из-за проблем с Docker. На таких системах установка, скорее всего, не удастся.
| ОС | Версия | Поддержка | Примечания |
|---|---|---|---|
| Ubuntu | 22.04 | ✅ | Требуются дополнительные репозитории для PHP |
| Ubuntu | 24.04 | ✅ | MariaDB можно установить без скрипта настройки репозитория |
| RHEL / Rocky / AlmaLinux | 8 | ✅ | Требуются дополнительные репозитории |
| RHEL / Rocky / AlmaLinux | 9 | ✅ | - |
| Debian | 11 | ✅ | См. зависимости Debian |
| Debian | 12 | ✅ | См. зависимости Debian |
| Debian | 13 | ✅ | См. зависимости Debian |
2. Зависимости
Pterodactyl требует следующие компоненты:
- PHP 8.2 или 8.3 с расширениями:
cli,openssl,gd,mysql,PDO,mbstring,tokenizer,bcmath,xmlилиdom,curl,zip,fpm(если используете NGINX) - MySQL 5.7.22+ (рекомендуется 8) или MariaDB 10.2+
- Redis (
redis-server) - Веб-сервер: Apache, NGINX, Caddy и т.п.
- Утилиты:
curl,tar,unzip,git - Composer v2
Пример установки зависимостей (Ubuntu 22.04/24.04)
# Устанавливаем дополнительные утилиты
apt -y install software-properties-common curl apt-transport-https ca-certificates gnupg
# Добавляем репозиторий PHP
LC_ALL=C.UTF-8 add-apt-repository -y ppa:ondrej/php
# Добавляем официальный репозиторий 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
# Устанавливаем зависимости
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
3. Установка Composer
Composer — менеджер зависимостей PHP. Он необходим для работы панели.
curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer
4. Загрузка файлов панели
- Создаём папку для панели:
mkdir -p /var/www/pterodactyl
cd /var/www/pterodactyl
- Скачиваем и распаковываем архив с последней версией:
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/
5. Настройка базы данных
Создаём базу данных и пользователя:
# Для MariaDB (по умолчанию при установке Pterodactyl)
mariadb -u root -p
# Для MySQL
mysql -u root -p
CREATE USER 'pterodactyl'@'127.0.0.1' IDENTIFIED BY 'yourPassword';
CREATE DATABASE panel;
GRANT ALL PRIVILEGES ON panel.* TO 'pterodactyl'@'127.0.0.1' WITH GRANT OPTION;
exit
6. Установка и настройка панели
- Копируем файл окружения и устанавливаем зависимости:
cp .env.example .env
COMPOSER_ALLOW_SUPERUSER=1 composer install --no-dev --optimize-autoloader
php artisan key:generate --force
⚠️ Важно: Сохраните
APP_KEYиз.env. Без него данные будут безвозвратно потеряны:
grep APP_KEY /var/www/pterodactyl/.env
- Настройка окружения панели:
php artisan p:environment:setup
php artisan p:environment:database
php artisan p:environment:mail
- Миграция базы данных и добавление Nests & Eggs:
php artisan migrate --seed --force
- Создание первого пользователя (администратора):
php artisan p:user:make
- Настройка прав на файлы панели:
# Для Ubuntu/Debian
chown -R www-data:www-data /var/www/pterodactyl/*
# Для RHEL / Rocky / AlmaLinux + NGINX
chown -R nginx:nginx /var/www/pterodactyl/*
# Для RHEL / Rocky / AlmaLinux + Apache
chown -R apache:apache /var/www/pterodactyl/*
7. Настройка очередей (Queue Listeners)
- Добавляем cronjob для обработки задач:
sudo crontab -e
# Вставляем строку:
* * * * * php /var/www/pterodactyl/artisan schedule:run >> /dev/null 2>&1
- Создаём systemd-сервис для очередей
/etc/systemd/system/pteroq.service:
[Unit]
Description=Pterodactyl Queue Worker
After=redis-server.service
[Service]
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
- Включаем и запускаем сервис:
sudo systemctl enable --now pteroq.service
sudo systemctl enable --now redis-server
8. Настройка веб-сервера (NGINX пример)
- Удаляем дефолтный конфиг:
rm /etc/nginx/sites-enabled/default
- Создаём новый конфиг
/etc/nginx/sites-available/pterodactyl.conf(замените<domain>на ваш домен):
server {
listen 80;
server_name <domain>;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
server_name <domain>;
root /var/www/pterodactyl/public;
index index.php;
client_max_body_size 100m;
client_body_timeout 120s;
sendfile off;
ssl_certificate /etc/letsencrypt/live/<domain>/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/<domain>/privkey.pem;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
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 SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location ~ /\.ht { deny all; }
}
- Включаем конфигурацию и перезапускаем NGINX:
sudo ln -s /etc/nginx/sites-available/pterodactyl.conf /etc/nginx/sites-enabled/pterodactyl.conf
sudo systemctl restart nginx
9. Установка Wings (демон серверов)
9.1. Проверка совместимости
- Wings работает только на Linux.
- Нужен Docker (KVM гарантированно поддерживается, OpenVZ/LXC обычно нет).
systemd-detect-virt
sudo dmidecode -s system-manufacturer
9.2. Установка Docker
curl -sSL https://get.docker.com/ | CHANNEL=stable bash
sudo systemctl enable --now docker
9.3. Проверка swap (опционально)
- Для Linux ядра 6.1+ swap включён по умолчанию.
- Если swap не работает, добавьте
swapaccount=1в/etc/default/grubи выполните:
sudo update-grub
sudo reboot
9.4. Установка Wings
sudo mkdir -p /etc/pterodactyl
curl -L -o /usr/local/bin/wings "https://github.com/pterodactyl/wings/releases/latest/download/wings_linux_$([[ "$(uname -m)" == "x86_64" ]] && echo "amd64" || echo "arm64")"
sudo chmod u+x /usr/local/bin/wings
10. Настройка Wings
- В панели создаём узел (Node) и копируем
config.ymlв/etc/pterodactyl. - Для запуска Wings в режиме отладки:
sudo wings --debug
- Демонизация через systemd
/etc/systemd/system/wings.service:
[Unit]
Description=Pterodactyl Wings Daemon
After=docker.service
Requires=docker.service
[Service]
User=root
WorkingDirectory=/etc/pterodactyl
LimitNOFILE=4096
ExecStart=/usr/local/bin/wings
Restart=on-failure
StartLimitInterval=180
StartLimitBurst=30
RestartSec=5s
[Install]
WantedBy=multi-user.target
- Запуск и автозагрузка:
sudo systemctl enable --now wings
11. Настройка Allocations (IP + Port для серверов)
- Узнать IP сервера:
hostname -I | awk '{print $1}' - Добавить Allocation в панели:
Nodes > ваш узел > Allocation.