DOC-SITE 部署与访问控制
版本: v1.0
日期: 2026-02-12
一、公网访问
DOC-SITE 为静态 HTML 站点,可部署至公网,通过以下方式访问:
| 部署方式 | 说明 | 公网可达 |
|---|---|---|
| Netlify / Vercel / Cloudflare Pages | 推送到 Git 后自动构建,免费 tier 支持 | ✓ |
| GitHub Pages | npm run docs:build 后推送到 gh-pages 分支 |
✓ |
| Nginx / Apache | 将 docs-site/ 目录配置为静态根路径 |
✓ |
| 本地预览 | npx serve docs-site、python -m http.server |
仅本机 |
注意:部署后默认无认证,任何人可访问全部文档。
二、访问控制与密码保护
2.1 核心文档不对外公开
以下文档视为核心/内部文档,不得在公网无密码保护下暴露:
| 类别 | 路径/模式 | 说明 |
|---|---|---|
| 商业计划 | docs/business/* |
商业模式、财务预测、投资人材料 |
| 实施计划 | *_IMPLEMENTATION_PLAN*.md |
12-Factor、架构迁移等内部路线图 |
| 竞品分析 | *_CLAUDE_*_ANALYSIS.md、*_GAP_ANALYSIS.md |
内部对标分析 |
| 产品内部 | **/product/business/* |
引擎投资人材料 |
| 其他 | 通过 DOCS_SITE_PUBLIC_EXCLUDE 环境变量配置 |
见下节 |
2.2 公开构建模式(排除核心文档)
构建时设置环境变量,可生成不含核心文档的公开版本:
# Windows PowerShell
$env:DOCS_SITE_PUBLIC_MODE = "1"
npm run docs:build
# Linux / macOS
DOCS_SITE_PUBLIC_MODE=1 npm run docs:build
公开模式下,以下内容将不包含在 docs-site/ 输出中:
docs/business/下所有文档- 匹配
*IMPLEMENTATION_PLAN*的文档 - 匹配
*_ANALYSIS*的文档(如 MBE_VS_CLAUDE_DOCS_GAP_ANALYSIS) - 可通过
DOCS_SITE_PUBLIC_EXCLUDE追加排除规则(逗号分隔 glob)
2.3 密码保护(全站或分支)
部署后需限制访问时,推荐在托管层添加密码保护:
| 平台 | 配置方式 |
|---|---|
| Netlify | Site settings → Access control → Visitor access → Password protection;可对 Production / Branch deploys 分别设置 |
| Vercel | Project → Settings → Deployment Protection → Password |
| Cloudflare Pages | 需配合 Cloudflare Access(支持免费 50 用户) |
| Nginx | 使用 auth_basic + htpasswd;详见下方示例 |
| Apache | .htaccess + .htpasswd |
Nginx 示例(对 docs-site 目录启用 Basic Auth):
location /docs-site {
alias /var/www/docs-site;
auth_basic "MBE 文档中心";
auth_basic_user_file /etc/nginx/.htpasswd;
}
生成 .htpasswd:htpasswd -c .htpasswd 用户名
三、Cloudflare Pages 部署
3.1 Git 集成(推送到分支自动构建)
- 在 Cloudflare Dashboard → Pages → Create project → Connect to Git
- 选择 Mises 仓库,配置:
| 配置项 | 值 |
|---|---|
| Production branch | main 或 master |
| Build command | npm run docs:build |
| Build output directory | docs-site |
| Root directory | 留空(若 Mises 为仓库根)或填 ./ |
| Environment variables(公开模式) | DOCS_SITE_PUBLIC_MODE = 1 |
- 构建完成后,访问
https://<project-name>.pages.dev
3.2 直接上传(Wrangler CLI)
本地构建后上传:
cd <Mises 项目根目录> # 如 d:\Mises (Windows) 或 /path/to/Mises
npm run docs:build
npx wrangler pages deploy docs-site --project-name=mbe-docs
首次需在 Cloudflare Dashboard 创建 Pages 项目,或使用 --project-name 自动创建。
3.3 密码保护(Cloudflare Access)
Cloudflare Pages 自身无内置密码,需配合 Cloudflare Access:
- Zero Trust Dashboard → Access → Applications → Add an application
- 选择 Self-hosted,域名填
https://<project-name>.pages.dev - 创建 One-time PIN 或 Email 策略,添加允许的邮箱
免费版支持最多 50 个用户。
四、推荐部署流程
公开站点(不含核心文档)
- 设置
DOCS_SITE_PUBLIC_MODE=1 - 运行
npm run docs:build - 将
docs-site/部署至 Netlify / GitHub Pages 等 - 无需密码,仅包含公开文档
内部站点(含核心文档 + 密码)
- 不设置
DOCS_SITE_PUBLIC_MODE,运行npm run docs:build - 将
docs-site/部署至 Netlify(或自建 Nginx) - 在 Netlify 开启 Password protection
- 或在 Nginx 配置
auth_basic
五、代码位置
| 组件 | 路径 |
|---|---|
| 构建脚本 | scripts/build-unified-docs-site.js |
| 公开模式排除逻辑 | 同上,读取 DOCS_SITE_PUBLIC_MODE、DOCS_SITE_PUBLIC_EXCLUDE |
| DOC-SITE 输出 | docs-site/ |