設定
ローカルでは設定なしで試せます。本番では、公開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、暗号化キー、ログイン
方法がそろっているか確認してください。