☰
ARTEXX AI 渗透测试系统生产部署完全指南:Nginx 反向代理、SSE 关键配置与一键更新自动回滚
2026/10/17 6:14:56 网站建设 项目流程

【免费下载链接】ARTEXX

ARTEX,AI 自主渗透测试系统。百度 agent+ 攻防挑战赛冠军项目。

项目地址:https://gitcode.com/gh_mirrors/ar/ARTEXX
点击查看免费下载

ARTEXX(Autumn-27/ARTEX)是一款开源的 AI 自主渗透测试系统,采用 Go 单体后端内嵌 Next.js 前端的架构,只需一个端口(默认:8787)即可同时提供页面、REST API 和实时事件流(SSE)。这篇文章带你完成 ARTEXX 生产级部署的三件核心事:Nginx 反向代理(HTTPS 只开放 443)、SSE 关键配置(解决活动流一直转圈的经典问题),以及一键更新与自动回滚机制,全程不需要登录服务器改代码。

部署完成后的效果预览:

部署架构速览:为什么一个端口就够了

理解架构是正确配置反向代理的前提。ARTEXX 的部署模型非常简洁:

组成部分说明
前端 + API + SSE同一 Go 端口(默认:8787)提供,Next.js 静态产物被go:embed内嵌进单二进制
流量录制代理独立端口127.0.0.1:8788,仅绑定本机,公网无需开放
PostgreSQL数据库,数据卷pgdata持久化
数据目录./data(jwt.key / SQLite 等)、./skills,升级时全部保留

关键设计:前端的实时活动流默认走同源地址(见 web/src/lib/api.ts 中sseUrl的实现),页面从https://你的域名/加载,事件流就连接https://你的域名/api/...——这正是"公网只开 443、8787 留在内网"能成立的原因。

Docker Compose 编排见 docker-compose.yml,可关注其中8788端口刻意绑定在127.0.0.1上。

一键安装:3 条命令落地

🚀 首次部署用仓库自带的一键安装脚本最省心:

git clone https://gitcode.com/gh_mirrors/ar/ARTEXX cd ARTEXX ./install.sh

脚本会引导你二选一:

  • ① 全部 Docker(推荐):填一个 Postgres 密码(可回车随机)→ 自动写.env→docker compose up -d,自动拉起artex与postgres:16-alpine两个容器。
  • ② 本地编译运行:生成config.json→ Go 编译出内嵌前端的单二进制./artex→ 用 start.sh 守护启动。

装好后访问http://localhost:8787,首次进入/setup设置管理员密码。数据库迁移无需手动执行——artex每次启动会幂等重跑schema.sql,"重启即迁移"。

⚠️ 一键更新功能依赖守护脚本重启程序,本地运行时请通过start.sh(Windows 为start.bat)启动,直接裸跑./artex不会自动拉起。

Nginx 反向代理配置:HTTPS 只开放 443

生产环境建议公网只开 443,把8787留在内网。一份可直接套用的 Nginx 配置如下:

server { listen 443 ssl; server_name your.domain.com; # ssl_certificate / ssl_certificate_key ... location / { proxy_pass http://127.0.0.1:8787; proxy_set_header Host $host; proxy_set_header X-Forwarded-Proto $scheme; # SSE 关键项:关缓冲、长超时、HTTP/1.1 proxy_buffering off; proxy_cache off; proxy_read_timeout 3600s; proxy_http_version 1.1; proxy_set_header Connection ""; } }

SSE 关键配置:为什么活动流会一直转圈

SSE(Server-Sent Events)是长连接 + 持续推送模型:ARTEXX 的引擎每一步探索活动、后端日志、更新进度都靠它实时推到浏览器。默认开启缓冲的 Nginx 会把事件"攒"在缓冲区里迟迟不发给浏览器,表现就是活动流一直转圈、日志页不动——连接是通的,但一个事件都收不到。

逐项理解上面 5 个关键指令:

指令作用漏配的症状
proxy_buffering off关闭响应缓冲,事件即时透传活动流一直转圈(最常见)
proxy_cache off明确禁用缓存偶发事件"迟到"
proxy_read_timeout 3600s长连接保持 1 小时不断开任务跑一会儿流就断了
proxy_http_version 1.1+Connection ""用 HTTP/1.1 且清除 Connection 头与后端长连接握手异常

后端其实也在帮你兜底:SSE 响应头里带了X-Accel-Buffering: no(见 server/server.go),标准 Nginx 会自动关闭缓冲;但显式写出上面的配置仍是生产环境的双保险,也能防住 CDN 层或其他中间代理的缓冲。

另外两个常见坑:

  • 8788不要加进反向代理:流量录制代理仅本机使用,公网暴露反而扩大攻击面。
  • NEXT_PUBLIC_SSE_BASE一般不用配:它只在 SSE 需要走与页面不同来源(如独立子域)时才在构建期设置(next build时固化进静态包,容器运行时再设无效)。同源部署留空即可。

一键更新与自动回滚:升级不怕坏

ARTEXX 的自更新链路把"最容易出错的一环"——换二进制——做成了全自动且有兜底(核心逻辑在 selfupdate/selfupdate.go 与 selfupdate/bootstrap.go):

下载发布包 → 比对 SHA256 → -h 冒烟测试 → 暂存 artex.new → 守护脚本重启换装 ↓ 任一步失败 丢弃暂存件,继续跑当前版本(不会留下坏程序)

页面一键更新(推荐)

进入系统配置 → 版本与更新卡片(server/update.go 提供/api/update/check、/api/update/apply、/api/update/rollback接口),无需登录服务器:

  1. 点「检查更新」→ 发现新版本后点「更新到 v0.x.x」;
  2. 进度条实时显示下载百分比,暂存完成后页面自动轮询/api/health,等版本号真正变化后自动刷新;
  3. 若新版连续 3 次启动失败,系统自动回滚到artex.old(失败版本留作artex.failed供排查)。

升级状态可随时在后台日志中查证:

必须知道的 4 个更新细节

  • 更新会中断正在运行的任务(更新即重启),请在空闲时进行;
  • 随时可手动回退:卡片上有「回滚到上一版本」,上一版本常驻为artex.old;注意数据库结构不会回退;
  • Docker 下只换程序、不换镜像:镜像里的 playwright / nmap 等工具链不会跟着升级,要连镜像一起升级请执行docker compose pull artex && docker compose up -d artex;
  • 需要代理访问 GitHub 时,在系统配置页填「全局代理」即可,更新链路会走它,且只从 GitHub 域名下载并强制 HTTPS。

服务器端更新脚本

更喜欢命令行?仓库提供了 update.sh 一键更新脚本:

cd ARTEXX ./update.sh

可选git pull拉最新代码后二选一:① Docker 更新(docker compose pull artex+up -d,可指定镜像 tag,Postgres 固定不动)或② 本地编译更新(重建前端静态产物 → 重编译./artex,完成后重启进程生效)。

部署后验证清单 ✅

按顺序走一遍,5 分钟确认部署无死角:

  1. 打开https://你的域名/,完成/setup管理员设置;
  2. 进入任意任务详情页,活动流实时跳动、日志页持续刷新——这是 SSE 配置正确的直接证据;
  3. 用curl -i https://你的域名/api/health确认返回 200 且带版本号;
  4. 「系统配置 → 版本与更新」卡片显示当前版本号,能查到最新 Release;
  5. 检查./data与 Postgres 数据卷pgdata已持久化,备份策略就绪后再投入长期运行。

🔒 提醒:ARTEXX 仅供个人学习、代码研究与本地隔离环境中的技术验证使用,请勿对任何线上系统发起实际测试。更多功能细节(拦截审批、通知推送、资产同步等)可参阅仓库根目录的 CHANGELOG.md。

【免费下载链接】ARTEXX

ARTEX,AI 自主渗透测试系统。百度 agent+ 攻防挑战赛冠军项目。

项目地址:https://gitcode.com/gh_mirrors/ar/ARTEXX
点击查看免费下载

相关推荐

上一篇:终极SQL优化指南:5个关键技巧用SOAR提升查询性能10倍
下一篇:如何快速将httpserver.h集成到现有C/C++项目中:完整指南

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询