本文章仅发布于冰凌的博客(原冰凌家),转载请标明出处。
本文章大部分图片托管于 路过图床 ,感谢路过图床!
本文章思路来源于 翼龙官方文档 ,并进行个人理解注释!
目前翼龙面板的所有文档与代码均由 翼龙中国 进行长期本地化支持。
一.翼龙面板前端搭建
选择服务器系统
Pterodactyl 可在多种操作系统上运行,因此请选择最适合您使用的操作系统。
由于与 Docker 不兼容,Pterodactyl 不支持大多数 OpenVZ 系统。 如果您计划在基于 OpenVZ 的系统上运行此软件,那么您很可能不会成功。 (若您不清楚此段警告含义,后面讲到后端会进行详细解释)
| 操作系统 | 系统版本 | 是否支持 | 备注 |
|---|---|---|---|
| Windows | 所有 | ❓ | 如果阁下使用的是 Windows 作为服务器操作系统 请自行测试,本人无条件进行测试! 此文章所有操作指令均为 Linux 操作系统指令, 请勿直接代入 Windows 系统中使用! |
| Ubuntu | 18.04 | ✅ | 此文档基于此版本系统编写 |
| Ubuntu | 20.04 | ✅ | |
| Debian | 11.x | ✅ | |
| Debian | 12.x | ✅ | |
| CentOS | ✅ | 由于 Red Hat 标记 CentOS Linux 为 EOL CentOS Stream 为滚动更新 故 CentOS 系列系统,本人不建议使用 |
安装依赖项
PHP 7.4 或 8.0(推荐),且安装有以下扩展:cli、openssl、gd、mysql、PDO、mbstring、tokenizer、bcmath、xml 或 dom、curl、zip 和 fpm,如果您计划使用 NGINX。
依赖项安装
# 添加 "add-apt-repository" 指令
apt -y install software-properties-common curl apt-transport-https ca-certificates gnupg
# 添加 PHP, Redis, and MariaDB 的额外软件库
LC_ALL=C.UTF-8 add-apt-repository -y ppa:ondrej/php
add-apt-repository -y ppa:chris-lea/redis-server
curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash
# 更新软件列表
apt update
# 如果您使用的是 Ubuntu 18.04,请添加 Universe 存储库
apt-add-repository universe
# 安装依赖项
apt -y install php8.0 php8.0-{cli,gd,mysql,pdo,mbstring,tokenizer,bcmath,xml,fpm,curl,zip} mariadb-server nginx tar unzip git redis-server
安装 Composer
Composer 是一个 PHP 依赖管理器(类似于 Node.js 的 npm,或者 Python 的 pip)。
Composer 将会拉取你的项目所依赖的所有 PHP 软件包,并且为你管理它们。它被所有现代化的 PHP 框架和平台所使用,例如: Laravel, Symfony, Drupal, 和 Magento 2。 而翼龙面板前端正是使用的 Laravel !
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 命令,从 Github 拉取翼龙官方预包装的程序文件压缩包,拉取完成后,我们需要对压缩包进行解压操作,并赋予 storage/ 与 bootstrap/cache/ 目录 755 权限。这两个目录作用是缓存动态资源以加速访问。
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 数据库
首先,我们将复制我们的默认环境设置文件 .env,并使用 Composer 安装核心依赖项,然后生成新的应用程序加密密钥。
cp .env.example .env
composer install --no-dev --optimize-autoloader
# 注意,以下指令仅针对于第一次安装部署翼龙面板前端
# 且对应数据库内无数据时执行,若阁下并非第一次安装且数据库内有数据,请忽略以下指令
php artisan key:generate --force
面板核心环境配置
翼龙面板的核心环境可以使用应用程序中内置的几个不同的 CLI 命令轻松配置。 此步骤将涵盖设置会话、缓存、数据库凭据和电子邮件发送等内容。
php artisan p:environment:setup
php artisan p:environment:database
# 若使用 PHP 自带的 mail 拓展 (不推荐使用), 请在执行以下指令后选择 "mail"。
# 若使用自定义 SMTP 服务器,请在执行以下指令后选择 "smtp"。
php artisan p:environment:mail
配置数据库
现在我们要将面板所有的核心数据写入我们之前为面板准备的数据库内。
php artisan migrate --seed --force
为面板创建第一个用户
数据库配置完成后,您需要为面板创建一个管理用户,以便您可以登录面板。 为此,请运行以下命令。 并保证账户密码满足以下要求:8 个字符,大小写混合,至少一个数字。
php artisan p:user:make
为 WEB 程序用户设置权限
安装过程的最后一步是对 面板程序文件设置正确的权限,以便 WEB 服务器程序(例如Nginx 或者 Apache)可以正确执行文件。
# 若使用 NGINX 或者 Apache (并非 CentOS 系统):
chown -R www-data:www-data /var/www/pterodactyl/*
# 若使用 NGINX 于 CentOS 系统:
chown -R nginx:nginx /var/www/pterodactyl/*
# 若使用 Apache 于 CentOS系统:
chown -R apache:apache /var/www/pterodactyl/*
注册队列监听服务
我们利用队列使应用程序更快,并在后台处理发送电子邮件和其他操作。 您需要注册队列监听服务以处理这些操作。
Crontab 设置
我们需要做的第一件事是创建一个新的 Cronjob,它每分钟运行一次以处理特定的任务,例如会话清理并将计划任务发送到守护进程。 您需要使用 sudo crontab -e 打开您的 crontab,然后将以下字符串以新一行粘贴进去,并保存更改。
* * * * * php /var/www/pterodactyl/artisan schedule:run >> /dev/null 2>&1
创建队列监听服务
接下来,您需要创建一个新的 systemd 来保持我们的队列进程在后台运行。 该队列负责发送电子邮件并为翼手面板处理许多其他后台任务。
在 /etc/systemd/system 中创建一个名为 pteroq.service 的文件,其内容如下。
# Pterodactyl Queue Worker File
# ----------------------------------
[Unit]
Description=Pterodactyl Queue Worker
After=redis-server.service
[Service]
# 不同的操作系统默认的 user 和 group 可能不同
# 若您使用宝塔面板 也请注意修改对应的 user 和 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
若您的系统使用了 Redis 请一定保证 Redis 在守护进程之前启动!
sudo systemctl enable --now redis-server #若阁下使用宝塔,此指令可能不适合您
最后,启动队列监听服务并设置开启自动启动
sudo systemctl enable --now pteroq.service
WEB 服务器程序伪静态配置
若使用 Nginx 作为 WEB 服务器程序
请配置伪静态如下
location / {
try_files $uri $uri/ /index.php?$query_string;
}
若使用 Apache 作为 WEB 服务器程序
阁下无需额外配置 .htaccess 已预设在程序 /public 目录中,正常来说无需多余配置。若阁下需要其文件,我已将文件内容粘贴至下方:
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews -Indexes
</IfModule>
RewriteEngine On
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
针对中国大陆用户的特殊设置
由于中国大陆的网络环境,阁下的服务器可能无法正常访问 Google 的 recaptcha 验证服务。这会导致用户无法正常登入面板前端,阁下可在 .env 文件中新建行并添加如下配置以关闭 Google 的 recaptcha 验证服务。
RECAPTCHA_ENABLED=false
二.翼龙面板后端搭建
Wings (翼龙面板后端)是 Pterodactyl 的新一代服务器控制程序。 它已经使用 Go 从头开始重建,并从第一代 Nodejs 守护进程中吸取了经验。
选择服务器系统
| 操作系统 | 系统版本 | 是否支持 | 备注 |
|---|---|---|---|
| Windows | 所有 | ⚠️ | Windows 系统支持通过 WSL 运行 Docker,请自行测试。 |
| Ubuntu | 18.04 | ✅ | 此文档基于此版本系统编写 |
| Ubuntu | 20.04 | ✅ | |
| Debian | 11.x | ✅ | |
| Debian | 12.x | ✅ | |
| CentOS | ✅ | 不建议使用,原因同上表 |
服务器硬件要求
要运行 Wings,您需要一个能够运行 Docker 容器的 Linux 系统。 大多数 VPS 和几乎所有专用服务器都应该能够运行 Docker,但也有特殊情况。
当您的提供商使用 Virtuozzo、OpenVZ(或 OVZ)或 LXC 虚拟化时,您很可能无法运行 Wings。 一些提供商已经对嵌套虚拟化进行了必要的更改以支持 Docker。 请咨询您的服务器提供商以确保其支持嵌套虚拟化。经过测试 KVM 虚拟化可以正常进行嵌套虚拟化操作。
最简单的检查方法是输入 systemd-detect-virt。 如果结果不包含 OpenVZ 或 LXC,应该没问题。 在没有任何虚拟化的情况下运行专用硬件时,将出现 none 的结果。
如果由于某种原因不起作用,或者您仍然不确定,您也可以运行以下命令。
sudo dmidecode -s system-manufacturer
安装依赖项
后端仅需 curl 与 docker 作为依赖,一些 Linux 发行版本已经预装了 curl ,若您的操作系统未安装 curl。您可输入一下指令以安装 curl
sudo apt update
sudo apt install curl -y
安装 Docker
我们使用官方的脚本一键安装并设置镜像源为阿里云。若阁下执意使用其他方式安装,我也不在此赘述其他安装方案。
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
curl -sSL https://get.docker.com/ | CHANNEL=stable bash #若阁下的主机不在国内,推荐使用此指令
设置 Docker 开机自启
如果您使用的是带有 systemd 的操作系统(Ubuntu 16+、Debian 8+、CentOS 7+),请运行以下命令以在您启动机器时启动 Docker。
systemctl enable --now docker
启用交换内存
在大多数系统上,Docker 默认无法设置交换内存。 您可以通过运行 docker info 并查找在底部附近的输出是否有 WARNING: No swap limit support 来确认这一点。
启用交换内存完全是可选的,但如果您要为他人托管并防止 OOM 错误,我们建议您这样做。
要启用交换内存,请以 root 用户身份打开 /etc/default/grub 并找到以 GRUB_CMDLINE_LINUX_DEFAULT 开头的行。 确保该行在双引号内的某处包含 swapaccount=1。
之后,运行 sudo update-grub 然后 sudo reboot 重新启动服务器以启用交换内存。 下面是该行应该是什么样子的示例,请勿逐字复制该行。 它通常具有其他特定于操作系统的参数。
GRUB_CMDLINE_LINUX_DEFAULT="swapaccount=1"
安装 Wings(翼龙面板后端)
安装 Wings 的第一步是确保我们有所需的目录。为此,请运行以下命令,这将创建基本目录并下载 Wings 可执行文件。
mkdir -p /etc/pterodactyl
curl -L -o /usr/local/bin/wings "https://github.com/pterodactyl/wings/releases/latest/download/wings_linux_$([[ "$(uname -m)" == "x86_64" ]] && echo "amd64" || echo "arm64")"
chmod u+x /usr/local/bin/wings
对接翼龙面板的前后端
安装 Wings 和所需组件后,下一步是在已安装的 前端上创建一个节点。 转到前端管理视图,从侧边栏中选择 Nodes,然后在右侧单击 Create New 按钮。
创建节点后,单击它,将出现一个名为“Configuration”的选项卡。 复制其框中内容,将其粘贴到 /etc/pterodactyl 中名为 config.yml 的新文件中并保存。
或者,您可以单击“Generate Token”按钮,复制 bash 命令并将其粘贴到后端服务器终端中。

以调试模式启动 Wings
要启动 Wings,只需运行以下命令,它将以调试模式启动。 一旦您确认它正在运行且没有错误,请使用 CTRL+C 来终止该进程并准备开始为期创建守护进程。 根据您服务器的网络状态,第一次拉取和启动 Wings 可能需要几分钟时间。
sudo wings --debug
若前端节点图标变成绿色心脏跳动动画,则说明前后端对接成功了

后期有任何问题,阁下都可以选择添加 --debug 参数以在调试模式下运行 Wings。
创建守护进程(使用 systemd)
若阁下在之前步骤中前后单可正常通讯,我们就可以将下面的内容放在 /etc/systemd/system 目录中名为wings.service 的文件中。(需要新建此文件)
[Unit]
Description=Pterodactyl Wings Daemon
After=docker.service
Requires=docker.service
PartOf=docker.service
[Service]
User=root
WorkingDirectory=/etc/pterodactyl
LimitNOFILE=4096
PIDFile=/var/run/wings/daemon.pid
ExecStart=/usr/local/bin/wings
Restart=on-failure
StartLimitInterval=180
StartLimitBurst=30
RestartSec=5s
[Install]
WantedBy=multi-user.target
然后,运行以下命令重新加载 systemd 并启动 Wings。
systemctl enable --now wings
至此,翼龙面板搭建完成。
三.翼龙面板汉化
此汉化为开源社区首家,国内第一个开源的新版本翼龙面板汉化! 来自 iLwork.CN Studio | 冰凌家 !!
下载汉化文件
Releases · ilworkcn/pterodactyl-chinese-manual (github.com)
并点击下载最新的汉化文件补丁(上述仓库已迁移至 https://github.com/pterodactyl-china/pterodactyl-chinese-stable)
覆盖程序文件
将刚刚下载好的汉化文件中的 app 与 resource 文件夹对翼龙面板前端进行同名覆盖操作
开始重新构建面板前端
此部分来源于 翼龙面板社区指南 并进行个人汉化理解
安装依赖项
以下命令将安装构建面板所需的依赖项。 构建工具需要 NodeJS,yarn 用作包管理器。
# Ubuntu/Debian 系统
curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
apt install -y nodejs
# CentOS 系统
curl -sL https://rpm.nodesource.com/setup_14.x | sudo -E bash -
sudo yum install -y nodejs yarn # CentOS 7 系统
sudo dnf install -y nodejs yarn # CentOS 8 系统
接下来安装所需的 javascript 包
npm i -g yarn # 安装yarn
cd /var/www/pterodactyl #进入面板前端目录,请按您的运行环境进行调整
yarn # 安装面板构建依赖项
重新编译面板前端
cd /var/www/pterodactyl #进入面板前端目录,请按您的运行环境进行调整
yarn build:production # 开始构建面板
四.一切就绪
不出意外的话,阁下已经完成了翼龙面板的搭建/前后端对接/以及汉化!
请尽情使用吧!
