UCP Panel
UCP Panel 是面向 FiveM / RedM 游戏服务器的综合控制面板。它由 Web 管理端、Express 认证与权限服务、MySQL 数据库以及运行在游戏服务器内的 fc_ucp Lua 资源组成。
当前版本:
0.2.0
项目状态:个人项目,持续开发,已经形成完整架构并用于服务器管理场景
项目部署地址已部署在独立域名,可直接查看登录入口。
访问 ucp.funcolor.cn解决的问题
FiveM 服务器的数据通常分散在游戏框架、银行插件、皮肤插件、日志系统和社区工具中。管理员需要在多个入口之间切换,玩家也很难在游戏外查看角色资料。
UCP Panel 把这些能力集中到一套权限清晰的控制台里,同时保留游戏内操作入口。
主要功能
游戏内 UCP
- 游戏内按 F9 或输入
/ucp打开窗口化面板 - 服务端确认玩家真实身份,浏览器端不能伪造他人账号
- 首次进入自动注册并绑定服务器
- 短时 JWT 自动续期,支持长时间停留
- 新玩家首次登录必须修改初始密码
服务器管理
- 服务器实时概览、在线趋势和运行状态
- 玩家、角色、车辆、组织与帮派管理
- 封禁、白名单、RP 门禁和服务器日志
- 银行余额、玩家转账、公户入账和取款
- 皮肤读取、服装分享码和外观预览
- OX 物品日志、资金流水与面板审计日志
- KOOK 问答机器人、知识库、工单与音乐投稿
权限系统
系统提供面板管理员、服务器管理员和普通用户三级基础角色,并支持按服务器分配细粒度权限。菜单显示、前端路由和后端接口都会校验权限,后端是最终判定来源。
系统结构
text
浏览器 / 游戏内 NUI
│
▼
Vue 3 控制面板
│ /api
▼
Express 认证与权限层
│ 按服务器代理请求
▼
fc_ucp(FiveM 原生 Lua 资源)
│ oxmysql
▼
游戏数据库技术栈
| 层级 | 技术 |
|---|---|
| Web 前端 | Vue 3、Vue Router、Ant Design Vue、Axios |
| Web 后端 | Node.js、Express、JWT、bcrypt、MySQL2 |
| 游戏插件 | Lua 5.4、FiveM、NUI、oxmysql |
| 数据与缓存 | MySQL / MariaDB、可选 Redis |
| 部署 | Docker、Docker Compose、1Panel、Nginx |
| 集成 | KOOK、SMTP、七牛云、txAdmin |
请求链路演示
下面的交互演示展示一次游戏内操作如何从 Lua 客户端走到数据库,再返回 NUI:
INTERACTION LAB
一次操作,穿过整条技术链路
STEP 01 / 06
玩家触发操作
玩家在游戏内按 F9 或输入 /ucp。客户端脚本只负责触发界面,不直接相信浏览器传来的身份。
RegisterCommand('ucp', openPanel)工程重点
身份不能由前端决定
游戏内面板通过服务端 source 获取玩家标识符,再签发短时令牌。前端只负责展示结果,无法自行声明自己是某个玩家。
数据操作保留审计
资金变化、物品变化和管理员操作写入日志。部分涉及游戏规则的操作只做查看,不绕过原有扣款、税务或业务校验。
跨服务器隔离
一套面板可以管理多台服务器。用户绑定、权限、日志和数据请求都带服务器上下文,避免不同服务器之间互相串数据。
可重复部署
项目支持 Docker Compose 和 1Panel,启动时自动执行幂等数据库迁移。SMTP、JWT 密钥、内部通信密钥和数据库信息通过环境变量注入。
下一阶段
- 继续完善现有服务器管理模块
- 加强代理离线、健康检查和异常可观测性
- 评估更多游戏框架与第三方插件适配
- 沉淀可复用的 Lua 业务层,为后续平台适配做准备