NX1X/Egret-Nest-Dashboard
GitHub: NX1X/Egret-Nest-Dashboard
一款自托管的 Egret 运行时安全遥测仪表盘,提供 CI/CD 事件摄取、可视化查看以及完善的组织 RBAC 和多方式认证功能。
Stars: 0 | Forks: 0
# 🪶 Egret Nest Dashboard
[](https://github.com/NX1X/Egret-Nest-Dashboard)
- **状态:** 认证 + 安全加固完成(Tier 3,[ROADMAP](docs/ROADMAP.md))
- **代码库:** [github.com/NX1X/Egret-Nest-Dashboard](https://github.com/NX1X/Egret-Nest-Dashboard)
- **技术栈:** 单一静态 Go 二进制文件 · 纯 Go SQLite (`modernc.org/sqlite`,无 CGO)
· 内置 UI (`html/template`) · **零第三方 Web 框架**
- **许可证:** Apache-2.0
## 运行
```
# Docker (推荐用于 self-hosting) - GitHub Container Registry 或 Docker Hub
docker run -p 8080:8080 -v egret-nest-data:/data ghcr.io/nx1x/egret-nest:latest
# Docker Hub: docker run -p 8080:8080 -v egret-nest-data:/data nx1x/egret-nest:latest
# 或从 source
make run # listens on :8080, db in ./egret-nest.db
```
打开 http://localhost:8080。
### 配置 (env)
以下是常用配置;**完整参考**(约 15 个变量:SSO 提供商、TLS、密钥、
webhook/metrics token、数据保留、setup token)详见 [docs/DEPLOY.md](docs/DEPLOY.md)。
| 变量 | 默认值 | 用途 |
|---|---|---|
| `EGRET_NEST_ADDR` | `:8080` | 监听地址 |
| `EGRET_NEST_DB` | `egret-nest.db` | SQLite 文件路径 |
| `EGRET_NEST_SECRET_KEY` | _(未设置)_ | 32 字节的 hex/base64 密钥,用于静态加密 TOTP 种子 + UI 存储的 SSO 密钥(**请务必设置**) |
| `EGRET_NEST_BASE_URL` | _(自动派生)_ | 公共 URL;SSO 重定向必需 |
| `EGRET_NEST_TLS_CERT` / `_TLS_KEY` | _(未设置)_ | 原生提供 HTTPS 服务(否则需在 TLS 代理后运行,并设置 `EGRET_NEST_BEHIND_PROXY=1`) |
| `EGRET_NEST_INSTANCE` | `Egret Nest` | 显示名称(也可在 GUI 中编辑) |
认证提供商 (GitHub/OIDC) 通过 `EGRET_NEST_GITHUB_*` / `_OIDC_*`
配置,**或者**通过管理员的 **Authentication** 页面设置 —— 参见 [docs/AUTH.md](docs/AUTH.md)。
## 将 Egret 运行连接到此服务
在你的工作流(或本地)中,将 agent 指向此服务器:
```
env:
EGRET_INGEST_URL: https://egret-nest.your-org.example/ingest
EGRET_INGEST_TOKEN: ${{ secrets.EGRET_NEST_TOKEN }} # matches EGRET_NEST_TOKEN
```
agent 在每次运行后会 POST 一个 **Envelope** (`schema_version: 1`)。这是
唯一的耦合方式 —— 参见
[摄取契约](https://github.com/NX1X/Egret/blob/main/docs/ingest-contract.md)。
## API
| 方法 & 路径 | 用途 |
|---|---|
| `POST /ingest` | 接收运行 envelope (JSON),bearer-token 认证。返回 `202` 及 `{id, new_endpoints}`。 |
| `POST /webhook/github` | 经过 HMAC-SHA256 验证的 GitHub webhook(未设置时返回 404)。 |
| `GET /` · `/runs/{id}` · `/repos` · `/repos/{repo}` | 运行列表 / 详情 / 仓库列表 / 仓库详情。 |
| `GET \|POST /account` | 用户自助 TOTP 2FA(本地用户)。 |
| `GET \|POST /orgs`, `/org/{id}/members`, `/org/{id}/tokens` | 组织 (Org) 自助服务(owner/admin RBAC)。 |
| `GET \|POST /admin/settings \| /admin/auth \| /admin/tokens \| /admin/users` · `/admin/logs` · `/audit` | 管理控制台(instance-admin)。 |
| `GET /metrics` | Prometheus 文本格式,token 控制访问(未设置时返回 404)。 |
| `GET /healthz` | 存活探针(由数据库检查)。 |
认证流程:`/login`, `/logout`, `/setup`, `/auth/github/*`, `/auth/oidc/*`。
## 开发
```
make test # unit tests (no kernel, any OS)
make cover # coverage report -> coverage.html
make build # static binary -> bin/egret-nest
make docker # container image
```
依赖项均根据 [docs/DEPENDENCIES.md](docs/DEPENDENCIES.md) 进行审查:首选
标准库,仅限纯 Go(无 CGO),不使用 npm 构建链。
## 路线图与状态
**已标记为 `v0.1.0`**(功能完备,经过安全审查)。已交付:ingest + 漂移
视图、完整的认证三部曲(本地用户+TOTP / GitHub / OIDC)及组织 RBAC、session/CSRF
防护、限定范围的 ingest token + HMAC webhook、管理控制台(包含 UI SSO 配置)、原生
TLS、打包(Docker/compose/Helm),以及视觉标识优化 —— 所有功能均经过
安全审查。
详情请参阅下方的 **文档地图**。当前状态和未来方向请参见
[docs/ROADMAP.md](docs/ROADMAP.md)。
### 文档地图(内容存放位置)
| 文档 | 负责 |
|---|---|
| [CHANGELOG.md](CHANGELOG.md) | 已发布的变更 (`[0.1.0]`) —— 功能历史 |
| [docs/ROADMAP.md](docs/ROADMAP.md) | 当前状态 + 规划 |
| [docs/AUTH.md](docs/AUTH.md) | 权威的认证与安全设计 |
| [docs/DEPLOY.md](docs/DEPLOY.md) | 部署指南 + 完整的 env 参考 |
| [docs/DEPENDENCIES.md](docs/DEPENDENCIES.md) | 依赖项策略 |
## 联系方式
- **网站:** [nx1xlab.dev](https://nx1xlab.dev)
- **联系:** [nx1xlab.dev/contact](https://nx1xlab.dev/contact)
- **Bug / 提问:** 在
[github.com/NX1X/Egret-Nest-Dashboard/issues](https://github.com/NX1X/Egret-Nest-Dashboard/issues) 提交 issue
- **安全:** 有关私下披露的信息,请参阅 [SECURITY.md](SECURITY.md)。
## 许可证
Egret Nest Dashboard 采用 [Apache License 2.0](LICENSE) 授权 —
© 2026 NX1X ([nx1xlab.dev](https://nx1xlab.dev))。有关
归属声明和捆绑组件的许可证,请参阅 [NOTICE](NOTICE)。
标签:EVTX分析, Go, RBAC, Ruby工具, SSO, 可视化面板, 安全运营, 扫描框架, 日志审计, 自定义请求头, 自托管, 请求拦截, 遥测平台