lswartsenburg/pentographer

GitHub: lswartsenburg/pentographer

Pentographer 是一款开源渗透测试管理平台,帮助安全团队集中管理测试发现、构建可复用 Playbook、利用 AI 辅助生成报告并导出专业文档。

Stars: 0 | Forks: 0

# Pentographer 一款渗透测试报告管理工具。Pentographer 帮助安全团队管理测试发现,构建可复用的 playbook,生成 AI 辅助报告内容,并导出专业的 Word/PDF 报告。 ## 功能 - **项目与发现** — 组织测试项目,记录带有风险等级、证据截图和版本历史的发现 - **Playbook** — 用于可复用测试清单的草稿/发布工作流;将 playbook 条目直接关联到发现 - **AI 辅助** — 使用 Anthropic Claude 撰写和审查发现;视觉支持允许 AI 参考上传的证据图像 - **报告导出** — 生成 Word (.docx) 报告;通过个人模板库导入您自己的模板 - **模板市场** — 与其他用户共享和复制报告模板 - **客户** — 跟踪客户并将其与项目关联 ## 技术栈 - [Next.js 16](https://nextjs.org) (App Router, standalone output) - [Drizzle ORM](https://orm.drizzle.team) + PostgreSQL - [Vercel Blob](https://vercel.com/docs/storage/vercel-blob) 用于文件存储 - [NextAuth.js](https://next-auth.js.org) (credentials, JWT sessions) - [Anthropic Claude](https://anthropic.com) 用于 AI 功能 - [shadcn/ui](https://ui.shadcn.com) 组件库 ## 快速开始 ### 前置条件 - Node.js 24(如果您有 nvm,请使用 `nvm use`) - pnpm (`npm install -g pnpm`) - PostgreSQL 16,或使用 Docker 在本地运行 ### 本地开发 1. **克隆并安装** git clone https://github.com/lswartsenburg/pentographer.git cd pentographer nvm use pnpm install 2. **配置环境** 复制示例文件并填写相应的值: cp .env.example .env.local 必需的变量: | 变量 | 描述 | | ----------------------- | -------------------------------------------------------------------------------- | | `DATABASE_URL` | PostgreSQL 连接字符串 | | `AUTH_SECRET` | 用于 NextAuth JWT 签名的随机密钥 — 使用 `openssl rand -base64 32` 生成 | | `BLOB_READ_WRITE_TOKEN` | 用于文件存储的 Vercel Blob token | | `ANTHROPIC_API_KEY` | 用于 AI 功能的 Anthropic API key | 3. **启动数据库** (Docker) docker compose up db -d 4. **运行迁移并填充数据** pnpm db:migrate pnpm db:seed 5. **启动开发服务器** pnpm dev 打开 [http://localhost:3000](http://localhost:3000)。 ### Docker (all-in-one) 启动应用、PostgreSQL 和 MinIO(本地 blob 存储): ``` docker compose up ``` ## 脚本 | 命令 | 描述 | | ------------------ | -------------------------------------- | | `pnpm dev` | 启动开发服务器 | | `pnpm build` | 生产构建 | | `pnpm type-check` | TypeScript 类型检查 | | `pnpm format` | 使用 Prettier 格式化所有文件 | | `pnpm test:e2e` | 运行 Playwright 端到端测试 | | `pnpm db:generate` | 生成 Drizzle 迁移文件 | | `pnpm db:migrate` | 应用待处理的迁移 | | `pnpm db:studio` | 打开 Drizzle Studio(数据库浏览器) | | `pnpm db:seed` | 使用示例数据填充数据库 | | `pnpm commit` | 交互式 conventional commit 助手 | ## 端到端测试 端到端测试使用 [Playwright](https://playwright.dev) 并且需要一个正在运行的服务器。如果存在已保存的 session 文件,当尚未运行开发服务器时,`pnpm test:e2e` 会自动启动它。 某些测试需要在 `.env.local` 中设置额外的环境变量: | 变量 | 描述 | | ----------------- | ------------------------------------------------ | | `TEST_EMAIL` | 测试用户的电子邮件 | | `TEST_PASSWORD` | 测试用户的密码 | | `TEST_PROJECT_ID` | 测试用户拥有的现有项目的 ID | 当未设置这些变量时,依赖这些变量的测试会自动跳过。 ## 安全 要报告安全漏洞,请参阅 [SECURITY.md](./SECURITY.md) 或发送电子邮件至 [security@pentographer.com](mailto:security@pentographer.com)。
标签:PB级数据处理, PostgreSQL, PPID欺骗, 安全运维, 报告管理, 测试用例, 特征检测, 自动化攻击, 请求拦截