# Squad Rain Ops Mini `Squad Rain Ops Mini` 是一个面向《Squad》服务器服主管理场景的轻量化运维面板项目。 项目基于 `.NET 6` 开发,集成了 `RCON`、Web 管理后台、日志解析、权限系统、插件系统、VIP/CDK/积分管理、封禁同步和 FRP 内网穿透辅助能力,适合用于中小型服务器的日常运营和管理。 ## 项目简介 本项目的目标是把服主常用的管理动作集中到一个统一后台中,减少频繁切换 RCON、配置文件、日志文件和脚本工具的成本。 系统支持: - 首次安装向导 - 后台登录鉴权 - 用户、角色与权限管理 - 实时服务器状态查看 - 玩家管理 - 聊天记录与日志查询 - VIP、CDK、积分与封禁管理 - 插件扩展 - 部分配置文件在线编辑 ## 技术栈 - 后端:ASP.NET Core Web App (`.NET 6`) - 数据存储:SQLite + SqlSugar - 实时通信:SignalR - 前端:HTML + Bootstrap + Vue - 服务器接入:Squad RCON - 日志处理:本地 `SquadGame.log` 实时解析 ## 核心功能 ### 安装初始化与基础配置 - 自动检测 `SquadGame/ServerConfig/Rcon.cfg` 中的 RCON 配置 - 首次配置 Web 管理账号、密码、RCON 地址、端口和密码 - 自动检测 Web 端口占用 - 支持控制台命令查看与修改 RCON、Web 端口、登录信息 ### Web 管理后台 - 登录页、验证码接口、会话鉴权 - 未登录访问后台时自动重定向到登录页 - 已初始化后自动屏蔽重复进入安装页 - 支持按角色和权限点控制页面与接口访问能力 ### 用户、角色与权限系统 - 后台子账号创建、启用、禁用、删除 - 支持重置后台用户密码 - 角色管理与权限点分配 - 支持超级管理员与细粒度权限共存 ### 实时服务器状态监控 - 实时获取服务器基础信息 - 获取在线玩家、队伍、分队等信息 - 支持设置 RCON 刷新频率 - 支持通过 SignalR 向前端推送实时数据 ### RCON 控制台与远程执行 - Web 端执行 RCON 命令 - 本地控制台直接透传 RCON 指令到游戏服务器 - 支持管理员踢人、警告、强制击杀、改图等高频动作 ### 玩家管理 - 玩家列表分页查询 - 按昵称、SteamID、EOSID 搜索玩家 - 查看玩家详情 - 查询玩家近 30 天会话记录 - 查询玩家本局击杀/死亡明细 - 查询玩家 TeamKill 历史 - 查询同 IP 在线玩家 ### 聊天记录与日志分析 - 实时接收 RCON 主动推送消息 - 保存聊天记录到 SQLite - 查询最近聊天消息 - 支持聊天历史分页和关键字搜索 ### 封禁管理与封禁同步 - 查看封禁列表 - 搜索封禁记录 - 新增封禁并支持同步踢出在线玩家 - 解除封禁 - 手动触发封禁配置同步 ### VIP、积分与 CDK - 管理 VIP / SVIP 成员并同步到 `Admins.cfg` - 查看与修改玩家积分 - 批量生成 VIP / SVIP CDK - 提供 CDK 兑换能力 ### 配置文件与地图管理 - 在线读取与保存 `SquadGame/ServerConfig` 下的配置文件 - 支持改图、切图类管理动作 - 支持快速编辑常用 `.cfg/.txt/.ini` 文件 ### 插件系统 - 自动扫描并加载实现 `IPlugin` 的插件 - 支持插件列表查看 - 支持插件配置更新与重置 - 插件配置位于 `PluginConfig/` ### 内置插件 - `WelcomePlugin` - `TKAutoKickPlugin` - `TicketQueryPlugin` - `TeamSwitchPlugin` - `TeamBalancePlugin` - `SquadCreationAnnouncePlugin` - `ScratchCardPlugin` - `RedPacketPlugin` - `RedemptionPlugin` - `PersonalBuffPlugin` - `ManualSignInPlugin` - `LotteryPlugin` - `GameTimeQueryPlugin` - `CdkRedeemPlugin` - `CallOpPlugin` - `BroadcastPlugin` - `AutoSignInPlugin` - `AfkKickPlugin` ### FRP 内网穿透辅助 - 控制台支持 `frp start`、`frp stop`、`frp restart` - Web 端提供 FRP 相关 API - 项目附带 FRP 配置与 systemd 示例文件 ## 项目目录 ```text 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` - `Config` - `setrcon` - `setwebport` - `showlogin` - `resetlogin` - `frp start` / `frp stop` / `frp restart` ## 数据与配置说明 项目运行时会产生或使用以下数据文件: - `rcon_config.json` - `users.json` - `roles.json` - `vip_members.json` - `RainOps.db` - `SquadGame/Saved/Logs/SquadGame.log` 这些文件通常属于部署环境数据,不建议直接公开到代码仓库。 ## 许可说明 本项目采用自定义许可证:`RainOps Mini Non-Commercial License v1.0`。 你可以: - 下载 - 学习 - 复制 - 修改 - 在非商业场景下重新分发 你必须: - 明确标注原始面板开发者为 `虾仁` - 在 README、说明文档或明显界面位置保留开发者署名 - 修改后说明你做过变更 你不能: - 将本项目或修改版用于商业用途 - 删除、隐藏或伪造原始开发者署名 如需商业授权,请联系原开发者 `虾仁`。 ## 功能截图 ### 登录页 ![登录页](功能截图/b8d8a200e8f62133cae48ed8ee7620fd.png) ### 仪表盘 ![仪表盘](功能截图/7f7909f53be1ff89d45797dbd235a519.png) ### 玩家管理 ![玩家管理](功能截图/c5cc8c56f9fd606ee199914158b62f7f.png) ### 功能界面 1 ![功能界面 1](功能截图/17b0c7422c4f1cb1bac6a83c6cea76a7.png) ### 功能界面 2 ![功能界面 2](功能截图/3ccfa81dc4f00c75b41106f84ac10d14.png) ### 功能界面 3 ![功能界面 3](功能截图/7db82545a878e4297c132830f1512cf0.png) ### 功能界面 4 ![功能界面 4](功能截图/9c0e11dda1871c3d1461d36364247253.png) ### 功能界面 5 ![功能界面 5](功能截图/b6c5b1911c5ec146290b6812211a89ad.png) ### 功能界面 6 ![功能界面 6](功能截图/e140850418af7df041efee026a8524ce.png) ## 说明 本 README 基于当前项目代码结构、接口、页面文件和插件命名整理而成。 若某些插件行为经过配置调整,请以实际部署配置和源码实现为准。