>_ DevTrendszh

语言

首页

语言

板块

前端 后端 移动端 DevOps AI / ML 游戏开发 区块链 嵌入式 安全
PHP

Pelican Panel 如何取代传统游戏服务器面板

logo

任何曾在空白虚拟机上搭建 Minecraft、DayZ 或 Satisfactory 专用服务器的人都深知其中的痛苦。首先要安装所需版本的 Java 或 SteamCMD,然后处理库冲突、配置 systemd 自动重启,还要想办法让朋友访问控制台而不必把整个宿主机的 SSH 密钥交出去。

多年来,Pterodactyl 一直是这个领域的事实标准。它是一个很棒的项目,但其代码库和管理后台已经明显过时,而且更新频率很低。开源项目 Pelican Panel 正是为取代它而来,重新思考了游戏服务器管理的架构设计。

Total Downloads Latest Release

底层架构

系统架构分为两个独立部分:Web 面板和主机代理。

Pelican Panel 的 Web 组件基于 Laravel 和 FilamentPHP 构建,负责处理界面、用户认证、权限管理、资源分配和数据库操作。得益于 Filament 的支持,面板拥有简洁的界面,方便分配管理员角色和监控节点负载。

第二个组件叫 Wings,是一个轻量级的 Go 守护进程,直接安装在运行服务器的节点上。Web 面板通过安全 API 向 Wings 发送指令,守护进程则负责管理 Docker 容器。

宿主机系统保持整洁。每个游戏进程都在隔离容器中运行,对 RAM、CPU 和磁盘都有严格限制。如果某个 Palworld 服务器因内存泄漏而疯狂占用资源,守护进程只会将其限制在规定范围内或直接重启,不会影响其他实例。

       [ Веб-интерфейс Pelican ]
          (Laravel + Filament)
                   
         REST API / WebSockets
                   
                   
          [ Демон Wings (Go) ]
                   
         Docker API (Socket)
         ┌─────────┴─────────┐
                            
   [ Docker: MC ]     [ Docker: CS2 ]

开箱即用的配置模板

在 Pelican 生态中,启动模板被称为 "eggs"(蛋)。这些是 JSON 清单文件,定义了基础 Docker 镜像、环境变量、启动脚本和游戏文件安装规则。

面板支持海量的预置配置库:

  • SteamCMD 游戏:Counter-Strike、Rust、ARK、7 Days to Die、Enshrouded、Project Zomboid。
  • Minecraft 构建版本:Vanilla、Paper、Sponge、BungeeCord、Waterfall。
  • 语音服务器:TeamSpeak、Mumble、Lavalink 实例。
  • Discord 机器人和 Python、Node.js、Java 实用工具服务。
  • 数据库和监控:Redis、PostgreSQL、Prometheus、Grafana。

如果某个游戏在标准仓库中没有,你可以轻松创建自定义模板,只需指定 Docker 镜像和下载二进制文件的脚本即可。

实践示例:启动与隔离

在日常运维中,Pelican 处理各种常规任务:

  1. 用户创建和权限分配。你可以只授权给朋友查看控制台和重启按钮的权限,隐藏网络设置和文件编辑功能。
  2. 内置文件管理器和 SFTP。用户可以直接从浏览器或通过常用的 FTP 客户端上传模组和编辑配置文件,且只能访问自己的文件夹范围。
  3. 定时任务和触发器。自动备份到 S3 存储、基于 cron 的定时重启、向服务器控制台发送指令,无需折腾 crontab。
  4. 端口管理。面板会追踪已分配的端口并在各容器间分配,不会产生端口冲突。

适用人群

如果你在家中运行专用服务器,或为和朋友开黑而租用 VPS,Pelican 能让你免去终端操作的麻烦。节点只需配置一次,之后只需几次点击就能部署新游戏。

对于小型游戏托管服务商和社区来说,这是商业解决方案的完整替代品。项目采用 AGPLv3 开源许可证,积极维护,开箱即用,兼容现代 PHP 和 Docker 技术栈。

Stats

官方文档和安装指南可在官网 pelican.dev 获取,面板源代码可在项目的 GitHub 仓库中查看。

相关项目