Files
squad-rain-ops-mini/README.md
2026-05-18 17:02:26 +08:00

267 lines
6.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 基于当前项目代码结构、接口、页面文件和插件命名整理而成。
若某些插件行为经过配置调整,请以实际部署配置和源码实现为准。