Установка Pterodactyl
Для его установки нам понадобятся зависимости:
PHP 8.0 или 8.1(рекомендуется) со следующими расширениями: cli, openssl, gd, mysql, PDO, mbstring, tokenizer, bcmath, xml, dom, curl, zip, (и fpm если вы планируете использовать NGINX.)
MySQL 5.7.22 или выше (рекомендуется MySQL 8) или MariaDB 10.2и выше.
Redis (redis-server) (Не обязателен)(Но так панель будет работать намного быстрее при больших нагрузках).
Веб-сервер (Apache, NGINX)
curl
tar
unzip
git
composer v2
На примере будет использована система ubuntu
Добавляем репозитории
apt -y install software-properties-common curl apt-transport-https ca-certificates gnupg
LC_ALL=C.UTF-8 add-apt-repository -y ppa:ondrej/php
Установим mariaDB
curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash
Дальше нужно обновить репозитории
apt update
Добавляем репозитории Universe
apt-add-repository universe
Теперь устанавливаем все нужные зависимости
apt -y install php8.1 php8.1-{common,cli,gd,mysql,mbstring,bcmath,xml,fpm,curl,zip} mariadb-server apache2 tar unzip git redis-server
(redis-server - По желанию)
Так как будем устанавливать панель через composer его нужно установить
curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer
Создаём папку в которую будет устанавливаться панель
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
Добавление базы данных.
Дальше нужно создать базу данных. Заходим в mysql. При запросе вводим пароль от root:
mysql -u root -p
Создаём в mysql пользователя. Где вместо yourPassword вписываем нужный пароль. Сохраните его, при настройке он понадобиться.
Создаём саму базу, где вместо "panel" можно написать и другое название. Выдаём нужные права пользователю которого мы создали ранее. И выходим из mysql. Команды:
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;
Дальше нам нужно скопировать файлы настройки для работы панели.
cp .env.example .env
composer install --no-dev --optimize-autoloader
Тут соглашаемся. Далее создаём ключ шифрования приложения. И выполняем команду с помощью которой будем настраивать саму панель:
php artisan key:generate --force
php artisan p:environment:setup
Настройка.
Тут начинаются пункты где нужно правильно настроить. В этой статье будет самая простая настройка.
Первым попросит почту. (можно указать любую) Данная почта будет использоваться как почта создателя стандартных яиц (яйцо - список игр которые доступны для установки)
Вторым попросит вписать адрес сайта который будет использовать панель, (http://yoursite.com) вписываем домен который у Вас куплен (Обязательно в виде http://yoursite.com). (Сменить можно будет в конфигурациях apache\httpd (дальше в настройках нужно будет настроить написать тот же домен, но уже без http://)
Дальше будет временная зона (Указывайте UTC) Либо просто нажмите enter
Следующим будет спрашивать драйвер кеша (file) На скриншоте написано redis, но лучше выбирать File чтобы было проще настраивать.
Драйвер сессий выбираем Mysql. (database)
Драйвер очереди (Queue driver) выбираем тоже mysql. (database)
Дальше предложат графический настройщик параметров (тут просто yes)
Теперь просит отправлять телеметрию (Тут на своё усмотрение, но я ставлю no)
Готово, настройка самой панели завершена.
Подключение базы данных.
Теперь приступаем к подключению базы данных.
php artisan p:environment:database
Настройки в данной категории похожи до прошлой.
1 .Попросит хост базы данных. (Просто жмём Enter если mysql стоит на самом сервере)
2 .Порт (тут так же как и с первым)
3 .Тут записываете название базы данных которую мы создали ранее и заранее записали название.
4 .Тут записываем пользователя которого мы создали заранее.
5 .Пароль который создали для пользователя.
На этом установка панели завершена.
Дальше нужно записать данные в базу данных
php artisan migrate --seed --force
Если всё правильно настроено, то будет большой список загрузок в базу данных.
Теперь добавим пользователя.
php artisan p:user:make
Первым спросит, является ли этот пользователь администратором.
Пишите да (yes)
Дальше он потребует почту. Указываете любую вашу почту.
Дальше нужно ввести ник пользователя (Любой подойдёт - главное запишите где-то)
Следующим панель попросит указать ваше имя. (Любое сойдёт)
Потом фамилию (Так же сойдёт что угодно)
И последним потребует пароль. Подойдёт любой, но главное скопируйте его себе где-то.
Выдаём права на папку
# Если используете Nginx или Apache:
chown -R www-data:www-data /var/www/pterodactyl/*
Создаём крон запуска
Вводите crontab -e и в конце добавляете эту строку.
* * * * * php /var/www/pterodactyl/artisan schedule:run >> /dev/null 2>&1
Добавление сервиса - службы.
Теперь добавим сервис чтобы мы могли запускать панель и добавить её в автозагрузку.
Нужно создать в папке /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
::
::
Дальше нужно создать файл pterodactyl.conf папке /etc/apache2/sites-enabled со следующими строками.
::
::
<VirtualHost *:80>
ServerName Домен-который-создавали-ранее-без-http://
DocumentRoot "/var/www/pterodactyl/public"
AllowEncodedSlashes On
php_value upload_max_filesize 100M
php_value post_max_size 100M
<Directory "/var/www/pterodactyl/public">
AllowOverride all
Require all granted
</Directory>
</VirtualHost>
::
::
Дальше нужно настроить Firewall
ufw allow http
ufw allow https
ufw reload
И нужно добавить панель в автозапуск
systemctl enable --now pteroq.service
Готово. Мы установили панель управления Pterodactyl.
Панель доступна по Вашему адресу: http://yoursite.com.