コンテンツにスキップ

ドキュメントの公開(社内限定)

ドキュメントは 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回のみ)

Terminal window
# ローカルから(要 Cloudflare ログイン)
cd apps/docs
pnpm dlx wrangler pages project create commerce-gateway-docs \
--production-branch main

2. GitHub Secrets を登録

リポジトリの Settings → Secrets and variables → Actions に追加:

Secret取得元
CLOUDFLARE_API_TOKENCloudflare → My Profile → API Tokens →「Edit Cloudflare Pages」テンプレート
CLOUDFLARE_ACCOUNT_IDCloudflare ダッシュボード右側の Account ID

以降は main への push(apps/docs/** 変更時)で自動デプロイされる。 手動実行は Actions タブの「Deploy Docs」→ Run workflow。

3. Cloudflare Access で社内限定にする

Zero Trust ダッシュボード(一度だけ):

  1. Settings → Authentication → Login methodsGoogle Workspace を IdP として追加 (Google 側で OAuth クライアントを作成し Client ID/Secret を登録)。
  2. Access → Applications → Add an application → Self-hosted
    • Application domain: commerce-gateway-docs.pages.dev (独自ドメインを使う場合はそのホスト名)
    • Identity providers: Google Workspace を有効化
  3. Policies に Allow ポリシーを 1 つ:
    • Action: Allow
    • Include: Emails ending in @stract.co.jp (または Google Groups で絞り込み)

これで未認証アクセスは Cloudflare のログイン画面にリダイレクトされ、 @stract.co.jp の Google アカウントでのみ閲覧できる。

独自ドメイン(任意)

docs.<会社ドメイン> を使う場合:

  1. Pages プロジェクトの Custom domains に追加(DNS は Cloudflare 管理)。
  2. apps/docs/astro.config.mjssite をそのURLに変更。
  3. Access Application の domain も同じホスト名に更新。

補足

  • プレビューデプロイ(PR ごと)も同様に Access で保護できる(pages.dev のプレビューURL)。
  • Access の設定は将来 Terraform / API でコード化も可能(現状は手動)。