chann44/Arrakis
GitHub: chann44/Arrakis
Arrakis 是一个自托管的供应链安全平台,旨在通过漏洞检测、风险评分及异常分析来保障开源依赖的安全性。
Stars: 0 | Forks: 0
# Arrakis
Arrakis 是一个自托管的、开源的供应链安全平台。
我们的目标是让开源更加安全,并让依赖包注册表对每个依赖它们的团队和社区来说都更加易于访问和值得信赖。
## 🚀 功能
- 扫描你的仓库依赖项(直接 + 传递)
- 检测已知漏洞 (CVE / OSV)
- 标记风险模式:
- 新型/不受信任的包
- 可疑的安装脚本
- 依赖混淆风险
- 跟踪随时间变化的依赖变更
- 生成简单的风险报告
## ⚙️ 工作原理
1. 连接你的 GitHub 仓库
2. 提取依赖清单 (npm, pip, go 等)
3. 构建依赖关系图
4. 运行扫描器 + 规则引擎
5. 输出带有风险评分的发现结果
## 🧱 技术栈
- Go (后端)
- Bun + Hono + Vercel AI SDK (沙盒化 AI 分析器)
- Postgres (元数据)
- Redis (任务 / 队列)
- Docker (自托管部署)
## 🏗️ 项目结构
```
apps/ # api, worker, web
domain/ # core models (dependency, scan, findings)
services/ # parsing, scanning, risk engine
adapters/ # github, osv, registries
deployments/ # docker / k8s
```
## 🐳 本地运行(仅开发依赖)
```
git clone git@github.com:chann44/TGE.git
cd arrakis
cp .env.example .env
docker compose -f deployments/dev.compose.yml up -d
```
API: `http://localhost:8080`
可选的 AI 分析器(沙盒模式):
```
make docker-build-ai
AI_ANALYZER_ENABLED=true AI_ANALYZER_MODE=docker make worker-dev
```
扫描详情现在包含一个 **AI Analysis**(分析)选项卡,其中包含从沙盒启动、代理进度到发现合并事件的分步日志。
## 🚢 使用已发布的镜像自托管
```
git clone git@github.com:chann44/TGE.git
cd arrakis
cp .env.example .env
docker compose -f deployments/selfhost.compose.yml up -d
```
自托管 compose 使用 Traefik,并在单个域名上提供 web + API (`/` 和 `/api`)。
在启动前,在 `.env` 中设置这些必需的值:
```
TRAEFIK_ACME_EMAIL=ops@example.com
DOMAIN_RECORD_TYPE=A
DOMAIN_RECORD_VALUE=
```
然后打开 `http:///settings` 并在仪表板中添加你的域名。
应用程序将显示你需要设置的 DNS 记录:
- TXT 所有权记录:`_tge-challenge.`
- 流量记录:`A`(如果配置了 CNAME 则为 `CNAME`)
DNS 传播完成后,在仪表板中点击 Verify(验证)。Traefik 将自动发布 HTTPS 路由。
基础设施要求:
- 在你的主机/云防火墙上开放入站端口 `80` 和 `443`
- 确保你的 DNS 指向 `DOMAIN_RECORD_VALUE`
Traefik 会通过 Let's Encrypt 自动终止 TLS。
Compose 使用的默认镜像:
```
chann44/tge-backend:latest
chann44/tge-web:latest
```
要将更新后的镜像发布到 Docker Hub:
```
docker login
make docker-build
make docker-push
```
通过 `.github/workflows/docker-publish.yml` 中的 GitHub Actions 也配置了自动发布。
推送像 `v1.0.0` 这样的标签即可将多架构镜像发布到 Docker Hub。
要使用其他注册表/镜像名称,请覆盖:
```
export TGE_BACKEND_IMAGE=your-registry/your-namespace/tge-backend:latest
export TGE_WEB_IMAGE=your-registry/your-namespace/tge-web:latest
docker compose -f deployments/selfhost.compose.yml up -d
```
要进行系统健康日志流式传输,请设置这些 `.env` 值:
```
CLICKHOUSE_HOST=localhost
CLICKHOUSE_PORT=9000
CLICKHOUSE_USER=default
CLICKHOUSE_PASSWORD=clickhouse
CLICKHOUSE_DATABASE=default
```
## 📌 路线图
- GitHub App 集成
- CI 集成(高风险时失败)
- 依赖更新的自动 PR 修复
- 高级启发式规则引擎
- 仪表板 + 告警
## ⚠️ 状态
早期阶段项目 —— API 和 schema 可能会发生变化。
## 🤝 贡献
欢迎 PR 和反馈。
## 📄 许可证
MIT
标签:Bun, CVE, DevSecOps, Docker, EVTX分析, Go, GraphQL安全矩阵, Hono, OSV, PostgreSQL, Redis, Ruby工具, Vercel, Vercel AI SDK, 上游代理, 依赖混淆, 依赖管理, 安全扫描器, 安全防御评估, 容器化部署, 异常检测, 搜索引擎查询, 数字签名, 日志审计, 自托管, 请求拦截