Установка Pterodactyl Panel на Ubuntu 22.04/24.04
Проверено с: Panel v1.15.1, Ubuntu 22.04 и 24.04 · обновлено 09.10.2026
Короткий ответ: установка Panel — это ~11 шагов на чистой Ubuntu: пакеты (PHP 8.3, MariaDB, Redis, nginx), composer, база данных, файлы панели, composer install, artisan-настройка окружения, миграция, первый пользователь, права, cron + очередь pteroq, nginx с SSL. Занимает 20–40 минут. Все команды ниже выполняются от root (или через sudo) на чистом сервере.
Гайд — русская адаптация официальной установки с нашим эксплуатационным опытом: где шаги обычно ломаются и как это выглядит. Различия Ubuntu 22.04 и 24.04 оговорены по ходу.
Шаг 1. Зависимости: PHP 8.3, MariaDB, Redis, nginx
Заголовок раздела «Шаг 1. Зависимости: PHP 8.3, MariaDB, Redis, nginx»Panel требует PHP 8.2/8.3, MySQL/MariaDB, Redis и веб-сервер. Проще всего поставить всё из apt:
apt update# утилиты для добавления репозиториевapt -y install software-properties-common curl apt-transport-https ca-certificates gnupg
# PHP 8.3 (на Ubuntu 22.04 его нет в базовых репозиториях — добавляем PPA;# на 24.04 строка не помешает, но можно пропустить)LC_ALL=C.UTF-8 add-apt-repository -y ppa:ondrej/php
# официальный репозиторий Rediscurl -fsSL https://packages.redis.io/gpg | gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpgecho "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" > /etc/apt/sources.list.d/redis.list
apt updateapt -y install php8.3 php8.3-{common,cli,gd,mysql,mbstring,bcmath,xml,fpm,curl,zip} \ mariadb-server nginx tar unzip git redis-serverПроверьте, что PHP и Redis живы:
php -v # должно быть 8.2 или 8.3systemctl status redis-server --no-pagerШаг 2. Composer
Заголовок раздела «Шаг 2. Composer»Composer — менеджер зависимостей PHP, панель ставится через него:
curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composercomposer --version # ожидаем 2.xШаг 3. База данных
Заголовок раздела «Шаг 3. База данных»Panel нужна база MySQL/MariaDB и пользователь для неё. Войдите в MariaDB:
mariadb -u root -pВыполните SQL (пароль замените на свой, сохраните его — понадобится на шаге 6):
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;FLUSH PRIVILEGES;exit;Важно: хост пользователя именно 127.0.0.1, не localhost — Panel подключается по TCP, и пользователь, созданный для localhost, работать не будет.
Шаг 4. Файлы Panel
Заголовок раздела «Шаг 4. Файлы Panel»mkdir -p /var/www/pterodactylcd /var/www/pterodactyl
curl -Lo panel.tar.gz https://github.com/pterodactyl/panel/releases/latest/download/panel.tar.gztar -xzvf panel.tar.gzchmod -R 755 storage/* bootstrap/cache/Шаг 5. .env, зависимости, ключ шифрования
Заголовок раздела «Шаг 5. .env, зависимости, ключ шифрования»cp .env.example .envCOMPOSER_ALLOW_SUPERUSER=1 composer install --no-dev --optimize-autoloader
# только при ПЕРВОЙ установке:php artisan key:generate --forceШаг 6. Настройка окружения
Заголовок раздела «Шаг 6. Настройка окружения»Три интерактивные artisan-команды: часовой пояс/кэш, база, почта.
php artisan p:environment:setupphp artisan p:environment:database # пользователь pterodactyl, пароль из шага 3php artisan p:environment:mailДля почты на старте можно выбрать встроенный mail (письма будут часто попадать в спам или не уходить вообще) и вернуться к SMTP позже: без почты не работают восстановление пароля и двухфакторная аутентификация.
Шаг 7. Миграция базы
Заголовок раздела «Шаг 7. Миграция базы»php artisan migrate --seed --forceКоманда создаёт таблицы и заполняет каталог яиц (nests/eggs). Может идти несколько минут — не прерывайте её.
Шаг 8. Первый администратор
Заголовок раздела «Шаг 8. Первый администратор»php artisan p:user:makeПароль: минимум 8 символов, строчные и заглавные буквы, цифра. Административные права подтвердите при создании. Это пользователь, под которым вы войдёте в веб-интерфейс.
Шаг 9. Права, cron и очередь
Заголовок раздела «Шаг 9. Права, cron и очередь»Права для веб-сервера:
chown -R www-data:www-data /var/www/pterodactyl/*Cron-задача планировщика (откройте crontab -e и добавьте строку):
* * * * * php /var/www/pterodactyl/artisan schedule:run >> /dev/null 2>&1Очередь — systemd-юнит /etc/systemd/system/pteroq.service:
[Unit]Description=Pterodactyl Queue WorkerAfter=redis-server.service
[Service]User=www-dataGroup=www-dataRestart=alwaysExecStart=/usr/bin/php /var/www/pterodactyl/artisan queue:work --queue=high,standard,low --sleep=3 --tries=3StartLimitInterval=180StartLimitBurst=30RestartSec=5s
[Install]WantedBy=multi-user.targetsystemctl enable --now redis-serversystemctl enable --now pteroq.serviceШаг 10. Nginx и SSL
Заголовок раздела «Шаг 10. Nginx и SSL»Удалите дефолтный сайт и создайте конфиг панели — /etc/nginx/sites-available/pterodactyl.conf (замените panel.example.com на ваш домен или IP):
server { listen 80; server_name panel.example.com;
root /var/www/pterodactyl/public; index index.php;
access_log /var/log/nginx/pterodactyl.app-access.log; error_log /var/log/nginx/pterodactyl.app-error.log error;
client_max_body_size 100m; client_body_timeout 120s;
sendfile off;
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 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; }}rm /etc/nginx/sites-enabled/defaultln -s /etc/nginx/sites-available/pterodactyl.conf /etc/nginx/sites-enabled/pterodactyl.confnginx -t && systemctl restart nginxSSL сертификатом Let’s Encrypt (нужен домен, направленный на сервер):
apt -y install certbot python3-certbot-nginxcertbot --nginx -d panel.example.comCertbot сам допишет SSL-блок в конфиг и настроит продление. Если панель остаётся на HTTP (например, во внутренней сети) — официальные примеры SSL-конфигурации вам не понадобятся, но доступ по HTTP — плохая идея даже в лаборатории.
Шаг 11. Проверка
Заголовок раздела «Шаг 11. Проверка»Откройте https://panel.example.com — должна появиться форма входа. Войдите администратором из шага 8.
С версии 1.11 панель отправляет анонимную телеметрию. Посмотреть, что именно уйдёт, можно командой php artisan p:telemetry; отключается телеметрия строкой в .env — PTERODACTYL_TELEMETRY_ENABLED=false (затем php artisan queue:restart).
Что дальше
Заголовок раздела «Что дальше»- Установка Wings и запуск первого сервера — панель без ноды не управляет ни одним сервером.
- Атака крашера — про дисковую уязвимость, о которой лучше узнать до первого игрока.