原文地址:https://lala.im/6074.html,請支持原作者!該處僅作轉載。
文章目录
Pterodactyl,以下简称翼龙面板。这是一款开源免费的游戏服务器管理面板,部署主要分为前端和后端(节点)两个部分。
这个面板的特色就是节点端全部容器化了,每个游戏运行相互都是独立的,安全性大幅度提高,另外前端的WEBUI功能非常丰富,可以非常方便的管理你的游戏服务器。
其实官网的安装文档写的算很详细了,有能力的可以直接去看官方的文档:
https://pterodactyl.io/
具体支持的游戏可以在项目页面下看:
https://github.com/pterodactyl/panel
这边我会把前后端搭建起来,然后部署一个CSGO服务器测试。
准备工作:
1.前端系统Debian10,任意虚拟化均可。
2.节点端系统Debian10,因为要使用Docker,OpenVZ这种类型的虚拟化无法搭建,需要注意一下。
3.一个独立域名。
首先我们来部署前端,安装常用工具以及Nginx/MariaDB/Redis:
apt -y install git curl unzip python-certbot-nginx nginx mariadb-server redis-server
这个程序目前只支持PHP7.2,我之前手贱装了个PHP7.3,后来发现依赖装不上,所以我这边先把PHP7.3给卸载了:
apt --purge remove php7.3-common
Debian10要装PHP7.2得添加sury源,其实自PHP5以来,Debian/Ubuntu官方存储库的PHP基本都是他打包的:
apt -y install apt-transport-https ca-certificates lsb-release
wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list
apt -y update
添加好源,现在我们就可以安装PHP7.2了:
apt -y install php7.2 php7.2-common php7.2-cli php7.2-cgi php7.2-fpm \
php7.2-gd php7.2-mysql php7.2-sqlite3 php7.2-pgsql php7.2-opcache \
php7.2-mbstring php7.2-curl php7.2-xml php7.2-xmlrpc php7.2-zip \
php7.2-intl php7.2-json php7.2-bz2 php7.2-bcmath
安装作曲家:
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/bin/composer
初始化MySQL:
mysql_secure_installation
登录到MySQL的Shell:
mysql -u root -p
创建数据库/用户/授权:
CREATE DATABASE panel CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'pterodactyl'@'127.0.0.1' IDENTIFIED BY '设置你的数据库用户密码';
GRANT ALL PRIVILEGES ON panel.* TO 'pterodactyl'@'127.0.0.1' WITH GRANT OPTION;
FLUSH PRIVILEGES;
quit
拉取项目文件/给予正确的权限:
cd /var/www
wget https://github.com/pterodactyl/panel/releases/download/v0.7.14/panel.tar.gz
tar -xzvf panel.tar.gz
mv panel-0.7.14 pterodactyl
chown -R www-data:www-data pterodactyl
cd pterodactyl
chmod -R 755 storage/* bootstrap/cache/
复制一份配置文件/安装依赖包/生成Key:
cp .env.example .env
composer install --no-dev --optimize-autoloader
php artisan key:generate
走安装流程(其实接下来这几个artisan控制台的命令就是在辅助你去配置.env):
php artisan p:environment:setup
按如图填写:
之前配置的都是Redis,所以接下来会让我们填写Redis连接相关的东西,还是一样按如图填写即可:
注:Redis默认是空密码,这里直接回车就行了。你也不用担心安全问题,Redis默认只监听在本地。
执行如下命令开始配置MySQL数据库:
php artisan p:environment:database
按如图填写即可:
初始化数据库:
php artisan migrate --seed
按如图填写即可:
这里还有一个配置SMTP发信的命令,但这边我先忽略掉不执行,实际上等搭建完,可以自己在WEBUI后台设置:
php artisan p:environment:mail
创建管理员账号:
php artisan p:user:make
按如图填写即可:
新建计划任务:
crontab -e
写入:
* * * * * php /var/www/pterodactyl/artisan schedule:run >> /dev/null 2>&1
新建systemd服务文件:
nano /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
[Install]
WantedBy=multi-user.target
启动pteroq:
systemctl start pteroq.service
systemctl enable pteroq.service
顺带把需要用到的软件都设置一下开机启动:
systemctl enable nginx
systemctl enable mariadb
systemctl enable php7.2-fpm
systemctl enable redis-server
新建Nginx站点配置文件:
nano /etc/nginx/conf.d/pterodactyl.conf
写入:
server {
listen 80;
server_name panel.koko.cat;
index index.html index.htm index.php;
root /var/www/pterodactyl/public;
client_max_body_size 128g;
location / {