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
- GitHub: github.com/Hinln/ARTEX
- Releases · Issues · Hacker News mentions
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`