opened image

Установка панели управления Pterodactyl (Ubuntu)

Установка 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

Добавление базы данных в Pterodactyl

Дальше нужно создать базу данных. Заходим в 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


 

Настройка Pterodactyl

Тут начинаются пункты где нужно правильно настроить. В этой статье будет самая простая настройка.

Первым попросит почту. (можно указать любую) Данная почта будет использоваться как почта создателя стандартных яиц (яйцо - список игр которые доступны для установки)

Вторым попросит вписать адрес сайта который будет использовать панель, (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.

.