merlijntishauser/unifi-homelab-ops
GitHub: merlijntishauser/unifi-homelab-ops
一款自托管的 UniFi 网络伴侣应用,提供防火墙规则分析、实时拓扑可视化、设备指标监控、机架规划和 AI 驱动的健康评估,弥补原生控制台在深度可见性方面的不足。
Stars: 1 | Forks: 0
# UniFi Homelab Ops
[](https://github.com/merlijntishauser/unifi-homelab-ops/actions/workflows/ci.yml)
[](https://github.com/merlijntishauser/unifi-homelab-ops/actions/workflows/docker-publish.yml)
[](https://hub.docker.com/r/merlijntishauser/unifi-homelab-ops)
[](LICENSE)
**你的 UniFi 控制器功能强大。这个工具让它 *可视化*。**
一款为 Homelab 爱好者打造的自托管伴侣应用,提供对 UniFi 网络更深度的可见性——防火墙分析、实时拓扑图、设备指标、机架规划以及 AI 驱动的健康评估。所有功能集成于单一管理界面,运行在你自己的硬件上。

## 为什么需要它?
原生的 UniFi 仪表盘非常适合日常管理,但它无法回答如下问题:
- *“哪些区域对之间没有明确的防火墙规则?”*
- *“我的规则中是否存在影子或重叠规则?”*
- *“我的网络实际上是什么样子的,就在此刻?”*
- *“是否有设备在过热运行,且这种情况持续了多久?”*
- *“我所有的设备能放进 10 英寸机架吗?”*
UniFi Homelab Ops 填补了这些空白。连接到你的控制器,几秒钟内你就能获得完整的安全审计、实时拓扑、设备监控和可视化机架规划器——全部支持深色模式、移动端支持和可选的 AI 分析。
## 模块
### 防火墙分析
一目了然地查看每个区域到区域的关系。每个单元格根据策略类型进行颜色编码,并通过 11 项自动化安全检查进行 A-F 评级。点击任意单元格可深入查看交互式规则图,检查单个规则,或模拟流量流向。
- 带有自动安全评级 (A-F) 的区域矩阵
- 带有规则标记和步进路径的交互式 ReactFlow 图
- 流量模拟器——追踪给定源/目的/端口匹配哪条规则
- 规则管理——直接启用/禁用和重新排序规则
- 通过 OpenAI、Anthropic 或任何兼容 API 进行的可选 AI 深度分析

### 网络拓扑
显示每个连接、端口状态和 LLDP 邻居的交互式设备映射图。切换到 SVG 图表视图,可获得整洁的正交或等轴渲染图,并可导出为 SVG 或 PNG。

### 设备指标
每个 UniFi 设备的实时监控。CPU、内存、温度、流量、PoE 消耗——全部显示在带有迷你趋势图的自动刷新卡片上。点击任意设备查看详细的时间序列图表和通知历史。
自动异常检测会针对高 CPU、内存压力、温度峰值、PoE 过载和意外重启向你发出警报。

### 站点健康
来自所有模块的聚合状态卡片,带有彩色健康指示器。一键 AI 跨域分析关联防火墙姿态、拓扑风险和指标异常,找出单一模块无法发现的问题。

### 机架规划器
通过拖放设备布局设计你的 Homelab 机架。支持 10 英寸和 19 英寸机架、分数 U 高度 (0.5U)、分数宽度(四分之一/半宽/全宽),并从 UniFi 目录自动填充设备规格。生成物料清单或直接从控制器导入设备。

### 文档生成器
从实时控制器数据自动生成网络文档:Mermaid 拓扑图、设备清单、端口概览、LLDP 邻居表、防火墙摘要和指标快照。导出为 Markdown、JSON、SVG 或 PNG。
## 快速开始
### 前置条件
- [Docker](https://docs.docker.com/get-docker/)
- 一个 UniFi Network 控制器 (9.x 或更高版本)
### 一条命令
```
docker run -d \
--name unifi-homelab-ops \
-p 8080:8080 \
-v unifi-homelab-ops-data:/data \
merlijntishauser/unifi-homelab-ops:latest
```
打开 [http://localhost:8080](http://localhost:8080) 并使用你的 UniFi 控制器凭据登录。
### 使用环境变量凭据
```
docker run -d \
--name unifi-homelab-ops \
-p 8080:8080 \
-v unifi-homelab-ops-data:/data \
-e UNIFI_URL=https://192.168.1.1 \
-e UNIFI_USER=admin \
-e UNIFI_PASS=yourpassword \
merlijntishauser/unifi-homelab-ops:latest
```
### Docker Compose
```
services:
unifi-homelab-ops:
image: merlijntishauser/unifi-homelab-ops:latest
ports:
- "8080:8080"
volumes:
- unifi-homelab-ops-data:/data
environment:
- UNIFI_URL=https://192.168.1.1
- UNIFI_USER=admin
- UNIFI_PASS=yourpassword
restart: unless-stopped
volumes:
unifi-homelab-ops-data:
```
## 配置
| Variable | Description | Default |
|---|---|---|
| `UNIFI_URL` | Controller URL (e.g. `https://192.168.1.1`) | -- |
| `UNIFI_SITE` | 站点名称 | `default` |
| `UNIFI_USER` | 控制器用户名 | -- |
| `UNIFI_PASS` | 控制器密码 | -- |
| `UNIFI_VERIFY_SSL` | 验证 SSL 证书 | `false` |
| `APP_PASSWORD` | Web UI 的可选密码关口 | -- |
| `APP_SESSION_TTL` | 会话时长(秒) | `86400` |
| `HOMELAB_OPS_DB_PATH` | SQLite 数据库路径 | `/data/homelab-ops.db` |
| `LOG_LEVEL` | 服务器日志级别 | `INFO` |
所有 `UNIFI_*` 变量都是可选的——如果省略,请在启动后通过 UI 登录。运行时凭据优先于环境变量。挂载 `/data` 以持久化设置、缓存分析和指标历史。
### AI 分析 (可选)
通过应用中的设置模态框配置,或通过环境变量配置:
| Variable | Description | Default |
|---|---|---|
| `AI_BASE_URL` | Provider API base URL | -- |
| `AI_API_KEY` | API key | -- |
| `AI_API_KEY_FILE` | Path to file containing the API key (Docker secrets) | -- |
| `AI_MODEL` | Model name (e.g. `gpt-4o`, `claude-sonnet-4-6`) | -- |
| `AI_PROVIDER_TYPE` | `openai` or `anthropic` | `openai` |
适用于任何 OpenAI 兼容 API(OpenAI、Ollama、LM Studio 等)和 Anthropic API。
## Docker 镜像
每次推送到 `main` 分支和版本标签时发布到 [Docker Hub](https://hub.docker.com/r/merlijntishauser/unifi-homelab-ops)。
| Tag | Description |
|---|---|
| `latest` | 最新发布版或 main 分支构建 |
| `1.0.0`, `1.0`, `1` | 固定发布版本 |
| `alpine` | Alpine 变体(镜像更小) |
| `1.0.0-alpine` | 固定发布的 Alpine 变体 |
多架构:`linux/amd64` 和 `linux/arm64`。
## 技术栈
| Layer | Stack |
|---|---|
| Backend | Python 3.13, FastAPI, SQLite, [unifi-topology](https://github.com/merlijntishauser/unifi-topology) |
| Frontend | React 19, TypeScript, Tailwind CSS 4, ReactFlow |
| Infra | Docker, Vite, uv |
## 贡献
有关开发设置、架构、质量标准和发布流程,请参阅 [CONTRIBUTING.md](CONTRIBUTING.md)。
## 许可证
[MIT](LICENSE)
标签:AI健康检查, Docker, Docker 部署, GitHub, Homelab, Mutation, Petitpotam, UniFi, 仪表盘, 可视化, 安全防御评估, 家庭实验室, 拓扑图, 插件系统, 机架规划, 流量捕获, 流量模拟, 网络安全, 网络拓扑, 网络运维, 自动化攻击, 自托管, 设备监控, 请求拦截, 逆向工具, 防火墙分析, 隐私保护