Skip to content

About

A self-hosted GitHub repository monitoring and security alert dashboard.

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

RepoSentinel Logo

RepoSentinel

自托管 GitHub 仓库值守平台
Webhook · 对账补漏 · 安全告警 · Telegram 通知

Go Node.js Version License

快速开始 · Docker 部署 · 配置参考 · 文档总览

Docs


项目简介

RepoSentinel 是面向个人与小团队的 GitHub 仓库监控控制台。它通过 GitHub App Webhook 实时接收 Issue、Pull Request、Actions 与安全告警,用 API 对账补漏,并把重要变化推送到 Telegram、企业微信、飞书、钉钉、Discord、Bark、Slack 或通用 HTTP Webhook。默认使用 SQLite,可选 PostgreSQL;单进程部署,管理后台嵌入同一二进制。

适合公网 VPS / 自建机房:一个容器(或一个二进制)即可完成值守,不依赖多用户 SaaS。


界面预览

仪表盘

RepoSentinel 仪表盘预览

展开查看更多界面截图(AI 代码审查、多渠道通知、Webhook 检查、移动端等)

Pull Requests 智能代码审查与合规裁决

PR AI 审查报告预览

仓库管理与外部公开仓监控

仓库管理预览

多渠道通知矩阵(Telegram、飞书、钉钉、企微等)

通知渠道配置预览

外发通知 Outbox 投递追踪

投递记录预览

Webhook 检查与事件回放 (Inspector)

Webhook Inspector 预览

Star Release 公开仓库依赖动态追踪

Star Release 预览

智能值守、系统偏好与 2FA 安全设置

系统设置预览

移动端抽屉导航与响应式适配

移动端视图预览

管理员登录与安全认证

登录页面预览


功能概览

模块 能力
实时采集 GitHub App Webhook:Issue / PR / star / watch / workflow_run / Dependabot / Code Scanning / Secret Scanning
安装与仓库 installation / installation_repositories / repository 生命周期;自有仓与外部公开仓登记
可靠入库 Delivery 幂等、事件指纹、乱序陈旧写入丢弃、首次基线抑制通知洪流
通知 Outbox 持久化传递;多渠道矩阵(Telegram、飞书、企业微信、钉钉、Discord、Bark、Slack、自定义 Webhook);失败重试与死信重试
定期报告(可选) 每日摘要 + 每周/每月报告,可按渠道独立订阅;正文可由 LLM 生成自然语言总结,失败自动回退模板
AI 告警分诊(可选) 新安全告警通知附带 AI 影响分析与处理建议;默认关闭,支持 OpenAI 兼容端点(可接本地模型)
Jev 判别式决策(可选) TypeSafe AI 判别式决策引擎(通知降噪、PR 级联审查门控、ChatOps 安全护栏);默认关闭(enabled: false),开启默认为影子观察(shadow),支持 15 分钟应急旁路降级与熔断防护
效能与分诊 维护者分诊收件箱(Inbox / Archived)与真人事件受控自动唤醒;前缀式高阶搜索语法(is:open、author: 等);Cmd+K 全局指令面板与键盘快捷流
智能降噪 机器账号精准识别(Bot);渠道级 Issue/PR 免打扰抑制与免打扰静默时段(安全高危告警严格豁免);活跃仓对账时效遥测与态势胶囊
管理后台 仪表盘 KPI(含新鲜度遥测与 Star 增长曲线)、仓库与基线、最近事件、传递记录、渠道配置、Webhook 检查面板与回放、Actions CI 效能洞察、亮/暗主题
智能运维 原生 Web 与多渠道 ChatOps 闭环(一键采纳首响应、一键关闭工单);GitHub App 60秒免手填 Manifest 配置向导;微内核插件基座契约
高危守卫 保护分支直推与强制推送实时秒级报警;AI 遥测持久化与月度预算熔断守卫;仓库重命名与转移自动愈合;通知渠道故障自动转移
决策雷达 动态仓库健康评分(A/B/C/D)与停滞工单哨兵;CI 失败故障归因聚类(Flaky网络/环境/测试/构建);Release 破坏性变更与本地依赖影响雷达
安全基线 单管理员、Argon2id、Session + CSRF、主密钥 AES-GCM、敏感配置掩码
运维 健康检查、/metrics、结构化日志、Docker/GHCR、Compose

技术栈

┌─────────────────────────────────────────────────────────┐
│  Frontend          React 19 + TypeScript                 │
│                    TanStack Router / Query               │
│                    Vite + Tailwind CSS                   │
├─────────────────────────────────────────────────────────┤
│  Backend           Go 模块化单体 + chi                    │
│                    Ent + Atlas 迁移                      │
│                    slog 结构化日志                       │
├─────────────────────────────────────────────────────────┤
│  Storage           默认 SQLite(WAL)                     │
│                    可选 PostgreSQL                       │
├─────────────────────────────────────────────────────────┤
│  Integration       GitHub App Webhook + REST             │
│                    Telegram Bot API / HTTP Webhook       │
├─────────────────────────────────────────────────────────┤
│  Infrastructure    GHCR 镜像 · Compose 单容器样例        │
└─────────────────────────────────────────────────────────┘

快速开始

前置条件

  • Docker 24+ 与 Docker Compose(推荐生产路径)
  • 或:Go 1.26+、Node.js 24+、pnpm 10.34.5(源码构建)
  • 一个 GitHub App(接收 Webhook)与可选的 Telegram Bot

Docker Compose

cp .env.example .env
# 必填 REPOSENTINEL_ENCRYPTION_KEY(openssl rand -base64 32)
# 建议填写 Webhook Secret、管理员账号或首次本机初始化

docker compose pull
docker compose up -d
curl -fsS http://127.0.0.1:8080/health/ready

默认镜像:ghcr.io/silentely/repo-sentinel:latest。私有包需先 docker login ghcr.io。

常用环境变量(完整见 .env.example 与 配置参考):

变量 用途
REPOSENTINEL_ENCRYPTION_KEY 主密钥(必填,openssl rand -base64 32)
REPOSENTINEL_PUBLIC_BASE_URL 对外 URL,生产用 HTTPS
REPOSENTINEL_DATABASE_DRIVER sqlite(默认)或 postgres
REPOSENTINEL_DATABASE_URL SQLite 文件 DSN 或 Postgres 连接串
REPOSENTINEL_GITHUB_WEBHOOK_SECRET GitHub 入站 Webhook Secret(也可在管理台 GitHub App 页填写)
REPOSENTINEL_ADMIN_USERNAME / PASSWORD 可选,预置唯一管理员

浏览器打开 http://127.0.0.1:8080,完成唯一管理员创建(或使用环境变量预置)。

GitHub App Webhook URL:

https://你的域名/webhooks/github

GitHub App 常用监控权限:Metadata、Contents、Issues、Pull requests、Checks、Commit statuses、Actions 均设为 Read-only;安全告警和写入功能按需授权。已有安装增加权限后,需要在 GitHub 批准新增权限。详见 权限清单与生效步骤。

完整步骤见 Docker 部署 与 快速开始。

源码运行

pnpm --dir web install && pnpm --dir web build
OUTPUT=.tmp/reposentinel BUILD_CHANNEL=local make build-production

REPOSENTINEL_HTTP_ADDR=127.0.0.1:8080 \
REPOSENTINEL_DATABASE_DRIVER=sqlite \
REPOSENTINEL_DATABASE_URL=file:./.tmp/reposentinel.db \
REPOSENTINEL_ENCRYPTION_KEY="$(openssl rand -base64 32)" \
REPOSENTINEL_GITHUB_WEBHOOK_SECRET=dev-secret \
.tmp/reposentinel serve

文档

完整使用文档见已部署的文档站:https://repo.cosr.eu.org。

文档 说明
快速开始 构建、启动、首次管理员
Docker 部署 镜像、环境变量、SQLite/Postgres、Webhook
源码部署 本地源码构建与运行
反向代理 HTTPS/反代部署
配置参考 全部环境变量、数据库、主密钥
运维手册 健康检查、备份、升级
管理员与 Session 初始化、改密、CLI 重置
健康与版本 运行状态查询与版本
列表 API 事件等列表接口
Jev 决策引擎运维 架构定位、上线门禁、密钥轮换与应急降级
系统架构 模块与数据流
功能介绍 能力边界与非目标
常见问题 部署与使用排障
文档总览 完整导航

以下为面向维护者与贡献者的仓库文档:

文档 说明
贡献指南 Issue / PR 要求与开发约定
安全策略 漏洞报告与部署基线

开发与验证

go test ./...
go vet ./...
pnpm --dir web test -- --run
pnpm --dir web typecheck
pnpm --dir web build
npm run docs:build

CLI:serve · version · config validate · admin reset-password · doctor · healthcheck · backup · restore。


目录结构(节选)

Repo-Sentinel/
├── cmd/reposentinel/     # 入口
├── internal/             # 配置、认证、HTTP、存储、规范化、规则、通知、Jev 决策引擎
├── migrations/           # SQLite / PostgreSQL Atlas 迁移
├── web/                  # React 管理后台(可嵌入二进制)
├── docs/                 # VitePress 文档
├── deployments/          # 测试用 Compose 等
├── Dockerfile
├── docker-compose.yml
└── VERSION

安全提示

  • 主密钥 REPOSENTINEL_ENCRYPTION_KEY 与数据库一并纳入运维备份;密钥丢失则库内加密凭据无法解密。
  • 首次 Web setup 默认仅 loopback;公网初始化需显式 REPOSENTINEL_SETUP_ALLOW_REMOTE=true,完成后关闭。
  • Session 使用 HttpOnly Cookie;写操作需要 CSRF。
  • Secret Scanning 相关路径不保存真实 Secret 明文。

版本

当前版本以仓库根目录 VERSION 为准(SemVer,无 v 前缀)。构建可通过 make 的 ldflags 注入 Git SHA 与构建时间。

About

A self-hosted GitHub repository monitoring and security alert dashboard.

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages