Squad Rain Ops Mini

Squad Rain Ops Mini 是一个面向《Squad》服务器服主管理场景的轻量化运维面板项目。
项目基于 .NET 6 开发,集成了 RCON、Web 管理后台、日志解析、权限系统、插件系统、VIP/CDK/积分管理、封禁同步和 FRP 内网穿透辅助能力,适合用于中小型服务器的日常运营和管理。

项目简介

本项目的目标是把服主日常常用的管理动作集中到一个统一后台中,减少频繁切换 RCON、配置文件、日志文件和脚本工具的成本。
系统支持首次安装向导、网页登录鉴权、角色权限分配、实时服务器状态查看、玩家管理、聊天记录、战局数据、插件扩展与部分配置文件在线编辑。

技术栈

  • 后端ASP.NET Core Web App (.NET 6)
  • 数据存储SQLite + SqlSugar
  • 实时通信SignalR
  • 前端:原生 HTML + Bootstrap + Vue
  • 服务器接入Squad RCON
  • 日志处理:本地 SquadGame.log 实时解析

核心功能

1. 安装初始化与基础配置

系统支持首次运行初始化。

  • 自动检测 SquadGame/ServerConfig/Rcon.cfg 中的 RCON 配置。
  • 首次配置 Web 管理账号、密码、RCON 地址、端口和密码。
  • 自动检测 Web 端口占用,避免启动时直接冲突。
  • 支持控制台命令查看与修改 RCON、Web 端口、登录信息。

适用场景:

  • 首次部署新服管理面板。
  • 迁移项目到另一台服务器时快速恢复。
  • RCON 配置变更后的重新接入。

2. Web 管理后台

系统提供静态 Web 管理界面,并通过 Cookie 认证保护后台。

  • 登录页、验证码接口、会话鉴权。
  • 已初始化后自动屏蔽重复进入安装页。
  • 未登录访问后台时自动重定向到登录页。
  • 支持按角色和权限点控制页面与接口访问能力。

适用场景:

  • 多管理员协作管理同一台 Squad 服务器。
  • 将高风险操作限制给特定管理角色。

3. 用户、角色与权限系统

系统内置独立的后台账号体系,不依赖游戏内账号。

  • 管理后台子账号的创建、启用、禁用、删除。
  • 支持重置后台用户密码。
  • 角色管理与权限点分配。
  • 支持超级管理员与细粒度权限共存。

详细说明:

  • users.view/users.add/users.edit/users.delete 这类权限用于约束后台账号管理。
  • 不同模块如玩家、聊天、地图、配置、封禁、VIP、积分、CDK 都有独立权限点。
  • 可以为值班管理员只开放查询权限,为高级管理员开放执行和编辑权限。

4. 实时服务器状态监控

系统通过 RCON 轮询和缓存机制获取服务器状态。

  • 实时获取服务器基础信息。
  • 获取在线玩家、队伍、分队等信息。
  • 支持设置 RCON 刷新频率。
  • 支持通过 SignalR 向前端推送实时数据。

详细说明:

  • 服务启动后会维护 RCON 长连接,并在断线后自动重连。
  • 后台页面可以直接读取当前缓存,减少频繁直连带来的压力。
  • 在线玩家的数据会结合数据库补全部分历史信息,例如累计游玩时长。

5. RCON 控制台与远程执行

系统既支持网页执行命令,也支持本地控制台直接输入命令。

  • Web 端执行任意 RCON 命令。
  • 本地控制台直接透传 RCON 指令到游戏服务器。
  • 支持管理员踢人、警告、强制击杀、改图等高频动作。

详细说明:

  • AdminKickAdminWarnAdminForceKill 等操作已封装为独立接口。
  • 改图接口限制为地图相关命令,避免误执行无关高风险指令。
  • 当 RCON 未连接时会返回明确错误,便于排查。

6. 玩家管理

系统提供完整的玩家库与在线玩家辅助管理能力。

  • 玩家列表分页查询。
  • 按昵称、SteamID、EOSID 搜索玩家。
  • 查看玩家详情。
  • 查询玩家近 30 天会话记录。
  • 查询玩家本局击杀/死亡明细。
  • 查询玩家 TeamKill 历史记录。
  • 查询同 IP 在线玩家,辅助识别多开或关联账号。

详细说明:

  • 玩家数据来自实时日志解析、RCON 数据和数据库持久化。
  • 可对指定玩家执行警告、踢出、封禁、强制击杀。
  • 对活跃玩家的历史画像可用于管理判断和纠纷复盘。

7. 聊天记录与日志分析

系统会监听 SquadGame.log 并对聊天等数据进行解析。

  • 实时接收 RCON 主动推送消息。
  • 保存聊天记录到 SQLite。
  • 查询最近聊天消息。
  • 支持聊天历史分页和关键字搜索。
  • 支持通过 SignalR 把实时聊天广播到前端。

详细说明:

  • 系统会尝试解析玩家聊天并关联队伍、分队信息。
  • 日志数据适合用于管理员巡查、纠纷核查和玩家行为分析。
  • 后续还可在此基础上扩展敏感词、自动告警、行为审计等能力。

8. 封禁管理与封禁同步

系统内置封禁记录与同步机制。

  • 查看封禁列表。
  • 搜索封禁记录。
  • 新增封禁并支持同步踢出在线玩家。
  • 解除封禁。
  • 手动触发封禁配置同步。
  • 查看最近一次和下一次同步状态。

详细说明:

  • 封禁逻辑不仅写入系统侧数据,也支持同步到 SquadGame/ServerConfig/Bans.cfg
  • 封禁同步由后台服务周期执行,保证配置文件和系统记录尽量一致。
  • 手动同步适合大批量调整后立即下发。

9. VIP 管理

系统支持管理 VIP/SVIP 成员并同步到 Squad 服务器配置。

  • 新增、编辑、删除 VIP 成员。
  • 区分 VIP_RainOpsMiniSVIP_RainOpsMini 分组。
  • 手动同步 VIP 到 Admins.cfg
  • 后台服务定期检查 VIP 到期状态。

详细说明:

  • VIP 数据独立存储,便于持续维护与导入导出。
  • 同步后可以将服内配置与面板后台保持一致。
  • 适用于赞助权益、活动奖励、长期服主管理名单维护。

10. 积分系统

系统包含基础积分管理功能。

  • 查看积分列表。
  • 按 SteamID 搜索。
  • 修改玩家积分。
  • 插件可直接调用积分服务发放或扣除积分。

详细说明:

  • 积分记录持久化到数据库。
  • 可与签到、红包、抽奖、刮刮乐等玩法插件联动。
  • 适合构建服务器内的活跃度激励体系。

11. CDK 生成与兑换

系统支持生成和兑换礼包码。

  • 批量生成 VIP/SVIP CDK。
  • 按状态、类型、关键字查询 CDK。
  • 删除指定 CDK。
  • 对外开放兑换接口供玩家使用。

详细说明:

  • 适合活动发码、赞助补偿、节日奖励等场景。
  • 兑换结果会记录使用人、用途、状态等信息。
  • 可与网页兑换页配合形成完整活动链路。

12. 地图与服务器配置文件管理

系统支持在线读取与保存 Squad 服务器配置文件。

  • 列出 SquadGame/ServerConfig 下的配置文件。
  • 在线读取 .cfg/.txt/.ini 文件内容。
  • 在线保存配置文件。
  • 支持改图、切图类管理动作。

详细说明:

  • 可统一管理如 Admins.cfgBans.cfgLayerRotation.cfgMOTD.cfg 等文件。
  • 对文件名做了基础安全检查,防止路径穿越。
  • 适用于日常快速热修配置而不必频繁远程桌面或 SSH 编辑。

13. 插件系统

项目内置插件扫描与注册机制,所有实现 IPlugin 的插件会自动加载。

  • 自动扫描插件类型并注册到 DI。
  • 支持普通插件与后台服务型插件。
  • 支持查看插件列表。
  • 支持动态更新插件配置。
  • 支持重置插件配置。

详细说明:

  • 插件配置集中存放在 PluginConfig 目录。
  • 插件可监听 RCON 消息、读写数据库、接入积分和聊天能力。
  • 适合持续扩展服内自动化运营逻辑。

14. 内置插件功能说明

当前项目包含以下内置插件或扩展模块:

  • WelcomePlugin:玩家进入服务器时的欢迎消息或欢迎流程。
  • TKAutoKickPlugin:针对 TeamKill 行为的自动惩罚或自动踢出。
  • TicketQueryPlugin:阵营票数查询与票数管理辅助。
  • TeamSwitchPlugin:队伍切换相关逻辑控制。
  • TeamBalancePlugin:自动平衡阵营人数或强度。
  • SquadCreationAnnouncePlugin:创建小队时自动播报或提示。
  • ScratchCardPlugin:刮刮乐类活动玩法。
  • RedPacketPlugin:红包玩法,通常用于活跃互动奖励。
  • RedemptionPlugin:兑换类奖励逻辑。
  • PersonalBuffPlugin:个人增益或临时效果配置。
  • ManualSignInPlugin:手动签到玩法。
  • LotteryPlugin:抽奖玩法。
  • GameTimeQueryPlugin:玩家游戏时长查询与刷新。
  • CdkRedeemPlugin:与 CDK 兑换流程联动。
  • CallOpPlugin:玩家呼叫管理或值班人员提醒。
  • BroadcastPlugin:定时或手动广播消息。
  • AutoSignInPlugin:自动签到奖励。
  • AfkKickPlugin:挂机玩家清理。

说明:

  • 各插件的实际行为以源码和 PluginConfig/*.json 配置为准。
  • 部分插件偏向活动玩法,部分偏向秩序管理和自动化治理。

15. FRP 内网穿透辅助

项目集成了 FRP 管理能力,便于部分场景下的远程接入。

  • 注册 FrpManager 服务。
  • 控制台支持 frp startfrp stopfrp restart
  • Web 端提供 FRP 相关 API。
  • 项目中附带 FRP 配置与 systemd 示例文件。

详细说明:

  • FRP 不会在程序启动时自动运行,需要手动启动。
  • 适合测试环境、异地维护或临时接入场景。
  • 生产使用前建议结合实际网络策略评估安全性。

16. 在线状态与值班辅助

系统支持查看当前面板在线用户与值班状态。

  • 显示当前在线管理面板用户。
  • 显示在线 OB/观察员等状态信息。
  • 便于管理协同与排班交接。

项目目录说明

Apis/                 模块化接口定义
Helpers/              RCON、日志、数据库、通用工具
Hubs/                 SignalR Hub
Models/               数据模型
Plugins/              内置插件实现
PluginConfig/         插件配置文件
Services/             后台服务与业务服务
SquadGame/ServerConfig/  Squad 服务器配置目录
wwwroot/              前端静态页面与资源
FRP/                  FRP 相关文件
SteamTimeQuery/       辅助查询子项目

运行说明

环境要求

  • Windows 环境优先
  • .NET 6 SDK
  • 可访问的 Squad 服务器 RCON
  • 本地或映射到项目目录下的 SquadGame 日志与配置目录

启动步骤

  1. 安装 .NET 6 SDK
  2. 进入项目目录
  3. 执行 dotnet restore
  4. 执行 dotnet run
  5. 浏览器访问控制台输出的 Web 地址
  6. 首次运行按向导完成初始化

常用控制台命令

  • help:查看帮助
  • status:查看系统状态
  • connect:手动连接 RCON
  • Config:查看当前配置
  • setrcon:修改 RCON 配置
  • setwebport:修改 Web 端口
  • showlogin:查看登录信息
  • resetlogin:重置登录信息
  • frp start / frp stop / frp restart:控制 FRP

数据与配置说明

项目运行时会产生或使用以下数据文件:

  • rcon_config.jsonRCON 与后台登录配置
  • users.json:后台用户数据
  • roles.json:角色权限数据
  • vip_members.jsonVIP 成员数据
  • RainOps.db:业务数据库
  • SquadGame/Saved/Logs/SquadGame.log:游戏日志

这些文件通常属于部署环境数据,不建议直接公开到代码仓库。

适用场景

  • Squad 社区服日常值班与运营
  • 小型到中型服务器的一体化管理后台
  • 希望把 RCON、日志、配置、活动玩法统一管理的服主团队
  • 需要二次开发 Squad 运维能力的开发者

后续可扩展方向

  • 更完整的操作审计日志
  • 更细的插件权限隔离
  • 地图轮换可视化编辑
  • 更完整的数据报表与趋势分析
  • 多服务器统一管理
  • 自动化告警与机器人通知集成

说明

本 README 基于当前项目代码结构、接口、页面文件和插件命名整理而成。
若某些插件行为经过配置调整,请以实际部署配置和源码实现为准。

许可说明

本项目采用自定义许可证:RainOps Mini Non-Commercial License v1.0

你可以:

  • 下载
  • 学习
  • 复制
  • 修改
  • 非商业场景下重新分发

你必须:

  • 明确标注原始面板开发者为 虾仁
  • 在 README、说明文档或明显界面位置保留开发者署名
  • 修改后说明你做过变更

你不能:

  • 将本项目或修改版用于商业用途
  • 删除、隐藏或伪造原始开发者署名

如需商业授权,请联系原开发者 虾仁

Description
No description provided
Readme 7.5 MiB
Languages
C# 53.5%
HTML 46.2%
Batchfile 0.3%