静看光阴荏苒
不管不顾不问不说也不念

Pterodactyl(翼龙面板)前后端详细安装步骤

前言

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 / {
		try_files $uri $uri/ /index.php?$query_string;
	}

    location ~ \.php$ {
        fastcgi_pass   unix:/run/php/php7.2-fpm.sock;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}

签SSL证书:

certbot --nginx --agree-tos --no-eff-email

签发流程如下:

前端这部分就完成了。现在挂个梯子打开你的站点域名看看能不能访问并登录到面板,正常情况下你应该看到下图的界面,不能的话自己排错吧:

注意这里我说了要挂个梯子访问,因为这个登录界面默认使用了Google的验证码,都懂的。其实你也可自己在.env里面把这个功能关掉,或者登录到后台后,通过后台关闭:

节点部署

首先安装Docker:

curl -sSL https://get.docker.com/ | sh
systemctl enable docker

接着安装Nodejs:

apt -y install build-essential
curl -sL https://deb.nodesource.com/setup_10.x | bash -
apt -y install nodejs

再装一下这个Unzip,后端启动的时候依赖它:

apt -y install unzip

自己先解析好一个二级域名,然后安装Certbot并签发SSL证书:

apt -y install certbot
certbot certonly --standalone --agree-tos --no-eff-email -d node1.koko.cat

现在就可以安装后端了:

mkdir -p /srv/daemon /srv/daemon-data
cd /srv/daemon
curl -L https://github.com/pterodactyl/daemon/releases/download/v0.6.12/daemon.tar.gz | tar --strip-components=1 -xzv
npm install --only=production

注意:一般的VPS都是直接把硬盘容量全部划分给根(也就是/)但如果你的机器大部分硬盘容量都挂载到其他的目录了,例如home,那这边新建文件夹的时候,就把srv改成home吧,总而言之看你自己挂载的目录哪个空闲空间大就用哪个。

现在我们需要登录到前端面板添加节点,首先点击Locations,新建:

完成之后点击Nodes,按照下图的示例添加你的节点:

之后点击Allocation,添加服务器公网IP以及端口,这里的端口我们可以直接设置端口范围,这样一次性就能创建多个端口了:

然后点击Configuration,复制里面那一段配置文件信息:

在节点端新建配置文件:

nano /srv/daemon/config/core.json

写入你刚才复制的这一段配置信息,例如我这样:

现在执行如下命令启动节点:

npm start

如果正常,你将看到类似如下图回显:

正常的话就Ctrl+C退出运行,然后将其放到后台运行,新建systemd服务文件:

nano /etc/systemd/system/wings.service

写入:

[Unit]
Description=Pterodactyl Wings Daemon
After=docker.service

[Service]
User=root
#Group=some_group
WorkingDirectory=/srv/daemon
LimitNOFILE=4096
PIDFile=/var/run/wings/daemon.pid
ExecStart=/usr/bin/node /srv/daemon/src/index.js
Restart=on-failure
StartLimitInterval=600

[Install]
WantedBy=multi-user.target

启动以及设置开机启动:

systemctl start wings
systemctl enable wings

创建CSGO服务器

现在我们可以尝试创建一台CSGO服务器了,首先我们需要打开下面的网址生成一个Steam服务器令牌:

https://steamcommunity.com/dev/managegameservers

如图所示就是生成好了,复制这一串代码:

回到面板点击Servers,按照下图填写基本信息,然后附加一个端口给服务:

设置这台服务器可用的资源,CSGO服务器硬盘至少25G:

选择你要搭建的游戏类型:

最后在下面这块粘贴你之前生成的Steam服务器令牌:

等待片刻,你的CSGO服务器应该就部署好了:

点击进去可以在线管理这台服务器,还支持中文:

测试服务器正常,可以正常连接并玩耍。。

最后稍微提一下,这个面板可以和WHMCS对接,具体的自己Google,这里就不多说了。。

赞(1)
未经允许不得转载:荒岛 » Pterodactyl(翼龙面板)前后端详细安装步骤
分享到: 更多 (0)

评论 10

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #1

    你最近是爱上debian了?

    Fcat4周前 (07-22) Google Chrome 75.0.3770.142 Google Chrome 75.0.3770.142 Windows 10 x64 Edition Windows 10 x64 Edition回复
    • 等CentOS8出来,现在先玩玩Debian。。

      LALA4周前 (07-22) Google Chrome 75.0.3770.100 Google Chrome 75.0.3770.100 Windows 10 x64 Edition Windows 10 x64 Edition回复
  2. #2

    :smile: lala也发现这个东西啦, 我就是在b站写了安装教程的那个人。

    GCC酱4周前 (07-26) Google Chrome 75.0.3770.143 Google Chrome 75.0.3770.143 Android 9 Android 9回复
    • gzz tql :mrgreen:

      uuz3周前 (07-26) Google Chrome 75.0.3770.80 Google Chrome 75.0.3770.80 Windows 10 x64 Edition Windows 10 x64 Edition回复
    • gcc牛批!

      LALA3周前 (07-27) Google Chrome 75.0.3770.100 Google Chrome 75.0.3770.100 Windows 10 x64 Edition Windows 10 x64 Edition回复
    • 翼龙q群离奇消失了 :???:

      logo3周前 (07-31) Google Chrome 71.0.3578.98 Google Chrome 71.0.3578.98 Windows 7 x64 Edition Windows 7 x64 Edition回复
      • :cry: 喝高了跟别人比赛解散群然后就解散掉了.

        GCC酱6天前 Google Chrome 76.0.3809.100 Google Chrome 76.0.3809.100 Windows 10 x64 Edition Windows 10 x64 Edition回复
  3. #3

    我也在折腾这个面板,看某个商家拿面板搞的MC面板服给人一种随时爆炸的感觉……

    Hotdog643周前 (07-31) Safari 12.1 Safari 12.1 iPhone iOS 12.2 iPhone iOS 12.2回复
  4. #4

    :mrgreen: 这个面板很诱人啊

    superuser2周前 (08-09) Google Chrome 75.0.3770.142 Google Chrome 75.0.3770.142 Windows 10 x64 Edition Windows 10 x64 Edition回复
    • 赶紧搭建起来卖游戏服务器,赚钱,走向人生巅峰。。

      LALA1周前 (08-09) Google Chrome 74.0.3729.169 Google Chrome 74.0.3729.169 Windows 10 x64 Edition Windows 10 x64 Edition回复

分享创造快乐

广告合作资源投稿