📈 GH Trending Explorer 🎲 Surprise me

← all repos

RuoJi6 / ARTEX

git clone https://github.com/RuoJi6/ARTEX.git v0.3.23 · today

Autumn-27/ARTEX 持续维护开源版本

—
stars, 24h
—
stars, 7 days
+402
stars, 30 days · #671
402
★ total
267
forks · 5 open issues

Star history starts 2026-10-20; the chart appears after the second daily snapshot.

LanguageGo
LicenseAGPL-3.0
Created2026-10-09 (11d ago)
Last pushtoday
Watchers3
OwnerUser

GitHub topics

Links

README excerpt
# ARTEX
AI 自主渗透测试系统(Go 后端 + Next.js 前端)
🌐 **在线 Demo**: https://artex-demo-ruoji6.vercel.app/
本仓库为独立维护的 RuoJi6/ARTEX,保留 https://github.com/Autumn-27/ARTEX 的原始提交历史与 AGPL-3.0 许可证。程序发布包从本仓库 Releases 下载,Docker 镜像 ruoji6/artex 由本仓库 GitHub Actions 构建并发布。
---
## 截图预览
> 完整交互见在线 Demo。
| 仪表盘(总览 / Token 消耗 / 活动流) | 任务列表 |
| :---: | :---: |
| | |
| 任务 · 执行过程(会话 / 工具调用) | 探索链路 |
| :---: | :---: |
| | |
| 发现 | 资产 |
| :---: | :---: |
| | |
| 资产覆盖图(力导向布局 · 已测高亮 · 节点折叠展开) |
| :---: |
| |
| 流量录制 | 人在环路对话 |
| :---: | :---: |
| | |
| Agent 管理 | LLM 配置 |
| :---: | :---: |
| | |
| 拦截审批 | 后端日志 |
| :---: | :---: |
| | |
---
## 审批记录详情
全局「审批记录」、任务内「拦截审批」及对话中的审批卡片均支持展开查看详情。展示结构参考
AegisHook 的审批详情组件,沿用 ARTEX 的组件和主题:
## 资产同步(ScopeSentry)
支持从 ScopeSentry 直接同步资产数据,免去重复收集:
- 在「**资产同步**」页填 ScopeSentry 的地址与 API Key,接入数据源;
- 按**项目**或**任务**维度选择要同步的目标与资产类型(域名 / 子域 / IP / 端口 / 站点 / 端点…);
- 一键导入并按公司资产范围归并,直接进入 ARTEX 的资产图供 agent 探索使用。
---
## 部署自己的在线 Demo(随正式 Release 自动更新)
Demo 只运行 `web/` 前端,构建时启用 `NEXT_PUBLIC_MOCK=1`,不需要 Go、PostgreSQL 或模型密钥。界面使用模拟数据,不执行真实扫描。
发布链路:正式版本的程序包、`SHA256SUMS` 和 Docker 镜像全部成功发布 → `release.yml` 的 `demo` job 调用 `demo.yml` → 检出该版本标签的提交 → 构建 Mock 前端 → 部署至 Vercel 的固定生产域名。普通 main 推送、仅创建标签、失败的发布、草稿和预发布版本都不会更新 Demo。新版本功能的演示数据仍需由维护者同步维护 `web/src/lib/mock/`。
### 首次配置 Vercel
1. 在自己的 Vercel 账号创建空项目,设置名称(例如 `artex-demo-ruoji6`)。保持 **Git 未连接**,避免每次提交都自动部署。`web/vercel.json` 也禁用了 Git 自动部署。
2. 在 **Settings → Build and Deployment** 中选择 **Next.js**、Node.js **22.x**,安装命令可覆盖为 `npm ci`,构建命令为 `npm run build`,Output Directory 保持默认。**Root Directory 留空**:此工作流从检出的 `web/` 目录调用 Vercel CLI,不能再填一层 `web`。
3. 在项目的 **Environment Variables** 中添加 `NEXT_PUBLIC_MOCK=1`,至少应用于 **Production**。不要设置 `NEXT_EXPORT=1`,也不要填写数据库连接或模型密钥。
4. 在项目 **Settings → General** 复制 **Project ID**;在团队 **Settings → General** 复制 **Team ID**(对应 `VERCEL_ORG_ID`)。确认 **Domains** 中有准备使用的生产域名。
5. 在 Vercel **Account Settings → Tokens** 创建部署 Token,范围选择项目所在团队,并设置适当有效期。将其直接保存到 GitHub 仓库 **Settings → Secrets and variables → Actions → Secrets**,名称为 `VERCEL_TOKEN`。令牌不要写入仓库、README 或聊天;到期后更新这个 Secret。
在同一 GitHub 设置页的 **Variables** 中添加:
| 变量 | 值 |
| --- | --- |
| `VERCEL_ORG_ID` | Vercel Team ID |
| `VERCEL_PROJECT_ID` | Vercel Project ID |
| `DEMO_URL` | 固定公开生产网址,含 `https://`,例如 `https://artex-demo-ruoji6.vercel.app` |
### 首次部署与重试
将配置合并到默认分支后,打开 **Actions → deploy-demo → Run workflow**,分支选 `main`,tag 留空或填写当前最新正式版(例如 `v0.3.21`)。工作流只接受已发布且包含五个平台程序包和校验文件的最新正式版,也能部署尚未包含此工作流的历史正式版。无需重新发 Release 或移动已有标签。
工作流会将这个专用 Demo 项目的框架设为 Next.js、Node 设为 22.x、根目录设为空、安装命令设为 `npm ci`、构建命令设为 `npm run build`,并确保 Production 环境的 `NEXT_PUBLIC_MOCK=1`,随后绑定 `DEMO_URL` 指定的域名。请使用独立项目;后续部署会继续维护这些配置。
成功后访问生产域名,并检查 `/demo-version.json` 中的 `tag`、`commit` 和 `mock: true`。确认可访问后,将 README 顶部和截图区域的旧 Demo 链接一起改为自己的生产域名。
此后按正常流程发布更高版本即可自动更新 Demo。若 Demo 部署失败,已发布的程序包和镜像仍然有效,旧 Demo 通常继续提供服务;修复设置后单独重跑 `deploy-demo`,不必重新发布整个 Release。两个版本同时发布时,部署串行执行,并在构建前、上线前检查 latest,避免已过期的构建覆盖新版。
这里采用发布流程直接调用部署 job,是因为使用 `GITHUB_TOKEN` 创建的 Release 不会继续触发另一个 `release: published` 工作流。`demo.yml` 也监听网页手