📈 GH Trending Explorer 🎲 Surprise me

← all repos

Hinln / ARTEX

git clone https://github.com/Hinln/ARTEX.git

ARTEX 源码备份:基于 Autumn-27/ARTEX v0.3.15,保留原始提交历史与 AGPL-3.0 许可证。

—
stars, 24h
—
stars, 7 days
+877
stars, 30 days · #348
877
★ total
1.3k
forks · 3 open issues

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

LanguageGo
LicenseAGPL-3.0
Created2026-10-08 (12d ago)
Last push12d ago
Watchers2
OwnerUser

Links

README excerpt
# ARTEX
AI 自主渗透测试系统(Go 后端 + Next.js 前端)
🌐 **在线 Demo**: https://artex-demo.vercel.app/
---
## 截图预览
> 完整交互见在线 Demo。
| 仪表盘(总览 / Token 消耗 / 活动流) | 任务列表 |
| :---: | :---: |
| | |
| 任务 · 执行过程(会话 / 工具调用) | 探索链路 |
| :---: | :---: |
| | |
| 发现 | 资产 |
| :---: | :---: |
| | |
| 资产覆盖图(力导向布局 · 已测高亮 · 节点折叠展开) |
| :---: |
| |
| 流量录制 | 人在环路对话 |
| :---: | :---: |
| | |
| Agent 管理 | LLM 配置 |
| :---: | :---: |
| | |
| 拦截审批 | 后端日志 |
| :---: | :---: |
| | |
---
## 审批记录详情
全局「审批记录」、任务内「拦截审批」及对话中的审批卡片均支持展开查看详情。展示结构参考
AegisHook 的审批详情组件,沿用 ARTEX 的组件和主题:
## 资产同步(ScopeSentry)
支持从 ScopeSentry 直接同步资产数据,免去重复收集:
- 在「**资产同步**」页填 ScopeSentry 的地址与 API Key,接入数据源;
- 按**项目**或**任务**维度选择要同步的目标与资产类型(域名 / 子域 / IP / 端口 / 站点 / 端点…);
- 一键导入并按公司资产范围归并,直接进入 ARTEX 的资产图供 agent 探索使用。
---
## 安装
> 依赖数据库 **PostgreSQL**;探索需配置 **LLM**(`ANTHROPIC_API_KEY` 或 `OPENAI_API_KEY`,也可在 UI 里配)。
### 方式一:一键安装脚本(推荐)
 [code] 
脚本会:检测 / 自动安装 Docker → 让你选 **① 全部 Docker** 或 **② 本地编译运行**:
- **① 全部 Docker**:填一个 Postgres 密码(可回车随机)→ 自动写 `.env` → `docker compose up -d`。
- **② 本地运行**:选数据库(连已有 / 用 Docker 起一个)→ 生成 `config.json` → `go` 编译内嵌单二进制 → 启动。
装好后打开 **http://localhost:8787**(首次进入 `/setup` 设置管理员密码)。
### 方式二:Docker Compose(手动)
 [code] 
镜像已含常用工具(ripgrep/curl/vim/npm/nmap…);`./skills` 与 `./data` 以绑定挂载持久化。
远程 MCP 可在系统设置中选择 `http`(Streamable HTTP)或 `sse`(旧版 SSE)。
旧版 SSE 服务通常使用 `GET /sse` 建立事件流,再通过服务返回的
`/message?sessionId=...` 接收 JSON-RPC 请求;配置时将 URL 填为 `/sse`,请求头按
`Authorization=Bearer ` 填写。
### 方式三:下载预编译二进制(Releases)
到 Releases 下载对应平台的 zip,解压后得到 `artex` + `start.sh`(Windows 为 `start.bat`)+ `skills/` + `config.example.json`:
 [code] 
> 请用 `start.sh` / `start.bat` 启动,而不是直接跑 `./artex`。它是个守护脚本:程序退出后按退出码决定是否重新拉起,**页面上的一键更新靠它完成换装**。直接运行 `./artex` 时更新完就不会被拉起了。
> 后台常驻:`nohup ./start.sh >artex.log 2>&1 &`。
### 方式四:从源码编译单二进制
 [code] 
### 方式五:构建跨平台 Release 压缩包
`build.sh` 会先构建并嵌入前端,再使用 Go linker 去除调试信息,并将发布文件压缩为 zip。Release 模式默认生成 Linux amd64/arm64、macOS amd64/arm64 和 Windows amd64 的 zip 包:
 [code] 
UPX 自解压二进制可能与部分 Linux 内核、虚拟化环境或安全策略不兼容,因此默认不启用。可用 `ARTEX_TARGETS` 自定义目标;确认目标运行环境兼容时,可显式传入 `--upx` 进一步缩小二进制:
 [code] 
---
## 更新升级
> 升级只换程序、不动数据:Postgres 数据卷 `pgdata`、`./data`(jwt.key / SQLite 等)、`./skills` 都会保留。**数据库迁移无需手动执行**——`artex` 每次启动会幂等重跑 `schema.sql`(含 `ADD COLUMN` / `CREATE INDEX IF NOT EXISTS`),即“重启即迁移”。升级前仍建议先备份 `./data` 与数据库。
### 本仓库的私有 Release 更新源
页面一键更新固定从 Hinln/ARTEX Releases 检查和下载版本。克隆或通过 Git 更新源码也使用 `Hinln/ARTEX`;原项目的 Go module 路径保持不变。
这是私有仓库。请为运行 ARTEX 的后端进程设置 `ARTEX_UPDATE_GITHUB_TOKEN`,令牌只需本仓库的 **Contents: read** 权限。令牌由后端用于查询 Release 和下载附件,不发送给浏览器,也不要提交到 Git。
 [code] 
本地直接启动时,`start.sh` 不会自动读取 `.env`;必须将变量导出到进程环境。Docker Compose 部署则可在未纳入 Git 的 `.env` 中填写该变量,并重建 artex 容器;镜像需要包含本分支的更新代码,旧版镜像不会因此切换升级源。
需要先在本仓库发布非 draft、非 prerelease 的正式 Release,并附上 `artex- - - .zip` 和 `SHA256SUMS`,页面才能提供可安装更新。仓库里只有源码时还不能在线升级。现有 Release 工作流会在推送 `v*` tag 时为当前仓库生成这些附件。
### 方式一:页面一键更新(推荐)
在 **系统配置** 页(侧边栏「系统配置」→ `/system/settings`)的**版本与更新**卡片里,可以直接检查并安装新版本,无需登录服务器。
点「更新」后:下载当前平台的发布包 → 比对 Release 的 `SHA256SUMS` → 用 `-h` 冒烟测试新二进制 → 暂存为 `artex.new`