GitHub

設定

ローカルでは設定なしで試せます。本番では、公開URL、暗号化キー、 ログイン方法を最初に設定します。

ローカルで試す

bun run dev:mock

モックAPIとWeb画面が一緒に起動します。Cloudflareのbindingや シークレットは必要ありません。ログアウト状態から試す場合は次のように 起動します。

YURUCOMMU_MOCK_AUTH=signed-out bun run dev:mock

bun run dev はWeb画面だけを起動します。既存のAPIへ接続する 場合にだけ、接続先を指定してください。

YURUCOMMU_DEV_PROXY_TARGET=http://localhost:8787 bun run dev

本番で最初に決める設定

設定 説明 扱い
APP_URL ブラウザで開くHTTPSのURL。末尾のスラッシュは付けません。 公開してよい値
ENCRYPTION_KEY 機密データの暗号化に使う64文字の小文字16進数。openssl rand -hex 32 などで生成します。 シークレット
ログイン方法 パスワード、Google/X OAuth、OIDCのうち、少なくとも1つを 設定します。 IDは公開可、パスワードやSecretはシークレット

実行環境との接続

次の名前でサービスをアプリへ接続します。管理ホストでは deploy/takoform が必要な接続を宣言します。Cloudflareでは ルートの main.tf または wrangler.jsonc で接続します。

名前 役割 Cloudflareの場合
DB アカウント、投稿、メッセージなど D1
MEDIA 画像と動画 R2
KV セッションや試行回数 Workers KV
DELIVERY_QUEUE ActivityPubの配信 Queues
DELIVERY_DLQ 繰り返し失敗した配信の退避 Queues

ログイン方法

使わない方式の変数は設定しなくて構いません。クライアントIDとSecretが 対になっている方式は、片方だけ設定しないでください。

変数名 説明 備考
AUTH_PASSWORD_HASH パスワード認証で使う値 PBKDF2のsalt:hash、または導入時に発行された 一時的なログイン用シークレット
GOOGLE_CLIENT_ID Google OAuthのクライアントID 公開設定可
GOOGLE_CLIENT_SECRET Google OAuthのクライアントシークレット Secretで設定
X_CLIENT_ID X/Twitter OAuthのクライアントID 公開設定可
X_CLIENT_SECRET X/Twitter OAuthのクライアントシークレット Secretで設定

OIDC

OpenID Connectに対応するログインサービスを指定できます。 パブリッククライアントとして登録した場合は、クライアントSecretは 不要です。

変数名 説明 備考
OIDC_ISSUER_URL OIDCプロバイダーのissuer URL TAKOSUMI_ACCOUNTS_ISSUER_URLも利用できます
OIDC_CLIENT_ID OIDCクライアントID TAKOSUMI_ACCOUNTS_CLIENT_IDも利用できます
OIDC_CLIENT_SECRET OIDCクライアントシークレット 機密クライアントの場合のみ。TAKOSUMI_ACCOUNTS_CLIENT_SECRETも利用できます
OIDC_OWNER_SUB 最初のオーナーにできるOIDCのsubject 最初にログインする人を事前に固定するときに設定
OIDC_ALLOWED_SUBS メンバーとして追加を許可するsubjectの一覧 未設定では外部ログインによるメンバー追加を許可しません

OIDC_OWNER_SUBを事前に確認できない場合だけ、 ALLOW_UNPINNED_OWNER_CLAIM=true を使えます。この間は最初にログインした人がオーナーになります。初回ログイン 後はsubjectを固定し、この設定を解除してください。

Takos連携(任意)

TakosはYurucommuのログイン方法ではありません。 ENABLE_TAKOS_TOOLS=true にすると、AIエージェントが POST /.takos/tools/:name 経由で投稿、検索、フォローなどを呼び出せるようになります。

変数名 説明
TAKOS_URL 連携先のTakos APIのURL。OIDCのissuerとは別の設定です。
ENABLE_TAKOS_TOOLS trueでツール用エンドポイントを有効にします。

設定を渡す場所

Takosumiなどの管理ホスト

deploy/takoform を読み込んだホストの設定画面から値を渡します。データベースや ストレージの接続、シークレット、公開URLはホスト側で管理します。 Cloudflare用の wrangler.jsonc は使いません。

CloudflareとWrangler

公開してよい値は、実際に使用するWrangler設定の vars に記述できます。

"vars": {
  "APP_URL": "https://yurucommu.example.com",
  "OIDC_ISSUER_URL": "https://issuer.example.com",
  "OIDC_CLIENT_ID": "your-client-id"
}

シークレットは設定ファイルへ書かず、対話形式で登録します。

bunx wrangler secret put AUTH_PASSWORD_HASH
bunx wrangler secret put ENCRYPTION_KEY
bunx wrangler secret put OIDC_CLIENT_SECRET

Secretの登録はWorkerの新しいバージョンを作ります。運用中の環境では、 対象のWorkerと戻し方を確認してから実行してください。ルートの main.tf を使う場合は、同じ値をOpenTofuの機密入力として 渡します。

設定を確認する

bunx wrangler secret list

Secretの一覧には値は表示されません。公開後は /healthz/readyz を開き、必要な接続、公開URL、暗号化キー、ログイン 方法がそろっているか確認してください。