ドキュメントの公開(社内限定)
ドキュメントは Cloudflare Pages にホストし、Cloudflare Access(Zero Trust) で
社内(@stract.co.jp)のみに公開する。デプロイは GitHub Actions から wrangler で行う。
main へ push (apps/docs/**) └─ GitHub Actions (deploy-docs.yml) └─ pnpm --filter @app/docs build → apps/docs/dist └─ wrangler pages deploy → Cloudflare Pages └─ Cloudflare Access が @stract.co.jp の SSO を要求(社内限定)初回セットアップ
1. Cloudflare Pages プロジェクト作成(1回のみ)
# ローカルから(要 Cloudflare ログイン)cd apps/docspnpm dlx wrangler pages project create commerce-gateway-docs \ --production-branch main2. GitHub Secrets を登録
リポジトリの Settings → Secrets and variables → Actions に追加:
| Secret | 取得元 |
|---|---|
CLOUDFLARE_API_TOKEN | Cloudflare → My Profile → API Tokens →「Edit Cloudflare Pages」テンプレート |
CLOUDFLARE_ACCOUNT_ID | Cloudflare ダッシュボード右側の Account ID |
以降は main への push(apps/docs/** 変更時)で自動デプロイされる。
手動実行は Actions タブの「Deploy Docs」→ Run workflow。
3. Cloudflare Access で社内限定にする
Zero Trust ダッシュボード(一度だけ):
- Settings → Authentication → Login methods に Google Workspace を IdP として追加 (Google 側で OAuth クライアントを作成し Client ID/Secret を登録)。
- Access → Applications → Add an application → Self-hosted
- Application domain:
commerce-gateway-docs.pages.dev(独自ドメインを使う場合はそのホスト名) - Identity providers: Google Workspace を有効化
- Application domain:
- Policies に Allow ポリシーを 1 つ:
- Action: Allow
- Include: Emails ending in
@stract.co.jp(または Google Groups で絞り込み)
これで未認証アクセスは Cloudflare のログイン画面にリダイレクトされ、
@stract.co.jp の Google アカウントでのみ閲覧できる。
独自ドメイン(任意)
docs.<会社ドメイン> を使う場合:
- Pages プロジェクトの Custom domains に追加(DNS は Cloudflare 管理)。
apps/docs/astro.config.mjsのsiteをそのURLに変更。- Access Application の domain も同じホスト名に更新。
補足
- プレビューデプロイ(PR ごと)も同様に Access で保護できる(pages.dev のプレビューURL)。
- Access の設定は将来 Terraform / API でコード化も可能(現状は手動)。