这是一个基于 Docusaurus 的网络安全知识库,最终部署形态是纯静态文件,适合放在 Nginx 一类的静态服务器后面。
docs/: 知识库正文与附件,是主要内容源src/: 首页、样式和站点相关前端代码static/: 会被原样拷贝到最终站点的静态资源vendor/: 外部仓库源,例如Awesome-POC子模块build/: 默认构建产物目录scripts/: 本地部署脚本
npm install
npm run start构建静态站点:
npm run build本地预览构建结果:
npm run serve这类项目不建议在小服务器上运行 Node.js。更合适的方式是:
- 在本地电脑或 CI 上执行
npm run build - 将生成的
build/目录同步到服务器静态目录 - 由现有的 Nginx / Nginx Proxy Manager 直接提供静态访问
当前服务器静态目录映射示例:
/root/hugo/PentestNotes/public -> /staticapps/PentestNotes
仓库内提供了两个脚本:
- Windows PowerShell:
scripts/deploy-static.ps1 - Linux/macOS Shell:
scripts/deploy-static.sh
它们会:
- 本地执行
npm run build - 通过
ssh连接服务器 - 将
build/完整覆盖同步到/root/hugo/PentestNotes/public
Windows 示例:
./scripts/deploy-static.ps1Linux/macOS 示例:
./scripts/deploy-static.sh如果仓库托管在 GitHub,推荐直接使用仓库里的 GitHub Actions 工作流:
- 你只需要
git push - GitHub Actions 会自动安装 Node、执行
npm ci和npm run build - 构建完成后通过 SSH 将静态文件同步到服务器
需要在仓库 Secrets 中配置:
DEPLOY_HOST: 服务器地址,例如a.iselt.topDEPLOY_USER: SSH 用户,例如rootDEPLOY_PORT: SSH 端口,默认可设为22DEPLOY_SSH_KEY: 部署私钥
工作流文件位置:
.github/workflows/deploy-static.yml
这样服务器只负责托管静态文件,不参与构建,资源占用最小,更新流程也最顺手。