Skip to content

TiedWorkspace 管理 — 運用 / デプロイ

apps/tied-workspace-admin (Worker tied-workspace-admin) の開発・デプロイ・環境変数。

バインディング / 環境変数

apps/tied-workspace-admin/wrangler.jsonc で定義する。型は worker-configuration.d.ts

種別名前用途
D1INVITE_DB (tied-workspace)invite_settings (読書) / invitations (読取)
D1AUTH_DB (tied-auth)管理 UI の better-auth
varBETTER_AUTH_URLアプリのオリジン (OIDC コールバック生成)
secretBETTER_AUTH_SECRETbetter-auth のセッション署名鍵
secretSLACK_CLIENT_ID / SLACK_CLIENT_SECRETSign in with Slack (OIDC)

secret は wrangler secret put <NAME> で設定する (コードや wrangler.jsonc に書かない)。

bash
cd apps/tied-workspace-admin
bunx wrangler secret put BETTER_AUTH_SECRET
bunx wrangler secret put SLACK_CLIENT_ID
bunx wrangler secret put SLACK_CLIENT_SECRET

ローカル開発では apps/tied-workspace-admin/.dev.vars に同じキーを置く (コミットしない)。

Sign in with Slack の OIDC リダイレクト URI には、このアプリのオリジンの /api/auth/oauth2/callback/slack を Slack App 側に登録する (invite-web とは別オリジンのため、admin のコールバック URL を追加する)。

ローカル開発

bash
# 依存インストール (リポジトリルート)
bun install

# D1 のローカル状態にスキーマを適用 (Miniflare)
bunx wrangler d1 migrations apply tied-workspace --local \
  --persist-to apps/tied-workspace-admin/.wrangler/state -c packages/d1/wrangler.jsonc
bunx wrangler d1 migrations apply tied-auth --local \
  --persist-to apps/tied-workspace-admin/.wrangler/state -c packages/d1/wrangler.jsonc

# 開発サーバ
bun run --filter @tied-workspace/admin dev

/settings で招待リンク・メール文面を設定すると、公開フォーム (invite-web) が その招待リンクを配信できるようになる。

デプロイ

bash
bun run --filter @tied-workspace/admin deploy   # react-router build && wrangler deploy

CI は .github/workflows/deploy-tied-workspace-admin.yml。PR で型チェック + ビルド、 main への push で本番デプロイする。D1 スキーマの適用はアプリと独立した deploy-d1.ymlpackages/d1/** の変更で行う。

公開ドメイン admin.tied-workspace.com は Cloudflare 側でカスタムドメインの紐付けが必要。