Multica Docs

環境変数

セルフホストの Multica サーバーを実行するための環境変数の完全な一覧です。

セルフホストの Multica サーバーは、起動時に環境変数から設定を読み込みます — データベース、サインイン、メール、ストレージ、サインアップ許可リストはすべてここにあります。このページでは、すべての変数を用途別にグループ化しています。各セクションでは、設定しないと何が起きるか、そしてプロダクションで必ず設定すべきものはどれかを明確に説明します。auth 関連の変数を実際にどう設定するかについては、サインインとサインアップの設定を参照してください。

コアサーバー変数

デプロイ前に必ず検討すべきコア変数です — 一部はサーバーを起動できるようにするデフォルト値を持っていますが、プロダクションでは必須項目を明示的に設定すべきです。

変数デフォルトプロダクションで必須?
DATABASE_URLpostgres://multica:multica@localhost:5432/multica?sslmode=disableはい
PORT8080いいえ(ポートを変更する場合を除く)
JWT_SECRETmultica-dev-secret-change-in-productionはい(デフォルトは安全ではありません)
APP_ENVはいproduction である必要があります)
FRONTEND_ORIGINはい(セルフホストは自身のドメインを設定する必要があります)
MULTICA_DEV_VERIFICATION_CODEいいえ(プロダクションでは必ず空のままにしてください)
MULTICA_SHUTDOWN_HOLD_DURATION0いいえ。SIGTERM/SIGINT の受信後、グレースフルシャットダウンを開始する前の任意の待機時間。300s5m などの非負の Go duration を受け付けます。空または 0 の場合は直ちにシャットダウンを開始します

Kubernetes で MULTICA_SHUTDOWN_HOLD_DURATION を使用する場合、terminationGracePeriodSeconds は hold 時間とその後のグレースフルシャットダウン時間の合計より長く設定してください。両方を同じ時間にすると、クリーンアップが完了する前に kubelet が SIGKILL を送信する可能性があります。

プロダクションでは MULTICA_DEV_VERIFICATION_CODE を空のままにしてください。 固定のローカルテストコードはデフォルトで無効になっていますが、MULTICA_DEV_VERIFICATION_CODE=888888 で有効にすると、APP_ENV が production 以外の間は、コードを要求できる誰もがその固定値でサインインできてしまいます。このショートカットは APP_ENV=production のときには無視されます。

データベース接続プール

変数デフォルト説明
DATABASE_MAX_CONNS25pgxpool の最大接続数。デーモンは頻繁に(3 秒ごとに)ポーリングして接続を使用するため、規模の大きいデプロイではより高い値が必要になる場合があります
DATABASE_MIN_CONNS5最小アイドル接続数

設定しない場合、上記の値が使われます — 以前プロダクションでプール枯渇を引き起こした pgx 組み込みの 4/NumCPU デフォルトではありません

メール設定

Multica は 2 つの配信バックエンドをサポートします — クラウドデプロイ向けの Resend と、内部 / オンプレミスネットワーク向けの SMTP relay です。両方が設定されている場合は SMTP_HOSTRESEND_API_KEY より優先されます。

Resend

変数デフォルト説明
RESEND_API_KEYResend API key
RESEND_FROM_EMAILnoreply@multica.aiResend の送信元アドレス(Resend アカウントで検証済みのドメインである必要があります)。SMTP_FROM_EMAIL が未設定の場合、SMTP でも使われます

SMTP relay

変数デフォルト説明
SMTP_HOSTSMTP relay のホスト名。これを設定すると SMTP モードが有効になり、Resend を上書きします
SMTP_PORT25SMTP ポート。STARTTLS サブミッションには 587 を、SMTPS(暗黙的 TLS、自動有効化)には 465 を使用します
SMTP_USERNAMESMTP ユーザー名。認証なしの relay の場合は空のままにしてください
SMTP_PASSWORDSMTP パスワード
SMTP_FROM_EMAILSMTP の MAIL FROMFrom: に使う送信元アドレス。未設定の場合は RESEND_FROM_EMAIL にフォールバックします
SMTP_TLSstarttlsTLS モード。implicit(別名 smtpsssl)は接続時に即座に TLS ハンドシェイクを行います(SMTPS)。465 ポートでは自動的に有効になります。未設定 / starttls の場合は接続後に STARTTLS でアップグレードします
SMTP_TLS_INSECUREfalseTLS 証明書の検証をスキップするには true に設定(プライベート CA / 自己署名証明書のみ)
SMTP_EHLO_NAMEマシンのホスト名relay に通知する EHLO/HELO 名。厳格な relay(例: Google Workspace smtp-relay.gmail.com)が公開 IP からのデフォルトの挨拶を拒否する場合は、実際の FQDN を設定してください — そうしないと relay が接続を切断し、後続のコマンドで不明瞭な EOF として表面化します

サーバーが STARTTLS を通知すると自動的にアップグレードされます。dial タイムアウトは 10 秒で、SMTP セッション全体には 30 秒のデッドラインがあるため、ブラックホール化した relay が auth ハンドラーをハングさせることはできません。

どちらも設定していない場合の動作: サーバーはエラーを出しませんが、送信されるはずだったすべてのメール(検証コード、招待リンク)はサーバーの stdout にのみ記録されます。ローカル開発には便利です — サーバーログからコードをコピーして使ってください。プロダクションでこれを設定し忘れると、静かなブラックホールが生まれ、ユーザーはメールをまったく受け取れず、エラーも一切表面化しません。

Google OAuth 設定

任意です。メール + 検証コードのみを使用する場合は設定しないままにし、サインインページに「Sign in with Google」を追加する場合は設定してください。

変数デフォルト説明
GOOGLE_CLIENT_IDGoogle Cloud OAuth client ID
GOOGLE_CLIENT_SECRETGoogle Cloud OAuth secret
GOOGLE_REDIRECT_URIhttp://localhost:3000/auth/callbackOAuth コールバック URL(セルフホスト: 自身のフロントエンドドメインに置き換えてください)

ランタイムで適用されます: フロントエンドはこれらの設定をランタイムに /api/config 経由で読み込むため、変更してもフロントエンドのリビルドや再デプロイは不要です — サーバーを再起動すれば適用されます。

完全なセットアップ(Google Cloud Console の手順を含む)はサインインとサインアップの設定にあります。

ファイルストレージ設定

Multica はユーザーがアップロードした添付ファイル(コメント内の画像やファイル)を保存します。S3 が推奨されます。S3 が設定されていない場合はローカルディスクにフォールバックします。

S3 / S3 互換ストレージ

変数デフォルト説明
S3_BUCKETバケット名のみ(例: my-bucket)。.s3.<region>.amazonaws.com サフィックスは含めないでください — サーバーが S3_BUCKET + S3_REGION から公開ホストを構築します。これを設定すると S3 ストレージが有効になります
S3_REGIONus-west-2AWS リージョン。バケットの実際のリージョンと一致する必要があります — SDK 署名と公開 URL の構築の両方に使われます
AWS_ACCESS_KEY_ID / AWS_SECRET_ACCESS_KEY静的な認証情報。両方を設定しない場合は AWS SDK のデフォルト認証情報チェーン(IAM role / 環境認証情報)が使われます
AWS_ENDPOINT_URLカスタムの S3 互換エンドポイント(例: MinIO)。これを設定すると path-style URL に切り替わります
ATTACHMENT_DOWNLOAD_MODEauto添付ファイルのダウンロード方式: autocloudfrontpresignproxyauto では CloudFront が完全に設定されている場合は優先し、内部/プライベート endpoint host は server proxy、公開 S3 互換 endpoint は対応時に presigned GET を使います
ATTACHMENT_DOWNLOAD_URL_TTL30mCloudFront signed URL と S3 presigned download URL の有効期間。Go duration 形式を受け付けます

S3_BUCKET を設定しない場合: サーバーは起動時に "S3_BUCKET not set, cloud upload disabled" をログに記録し、すべてのアップロードはローカルディスクにフォールバックします。

保存されるオブジェクト URL は次の優先順位で構築されます。

  1. CLOUDFRONT_DOMAIN が設定されている場合は https://<CLOUDFRONT_DOMAIN>/<key>
  2. AWS_ENDPOINT_URL が設定されている場合は <AWS_ENDPOINT_URL>/<S3_BUCKET>/<key>(path-style)。
  3. https://<S3_BUCKET>.s3.<S3_REGION>.amazonaws.com/<key>(virtual-hosted-style)。S3_BUCKET にドットが含まれる場合、AWS が発行するワイルドカード TLS 証明書がドットを含むバケットホストを検証できないため、サーバーは https://s3.<S3_REGION>.amazonaws.com/<S3_BUCKET>/<key>(path-style)にフォールバックします。

API の download_url は、CloudFront 署名が設定されていない場合 GET /api/attachments/{id}/download を使います。この endpoint は安全な場合 CloudFront/S3 presigned URL にリダイレクトし、http://rustfs:9000 のようなプライベート/内部 endpoint では server がストリーミングします。Docker/VPC 内部のオブジェクトストアでは ATTACHMENT_DOWNLOAD_MODE=proxy を明示できます。

ローカルディスク(S3 が設定されていない場合)

変数デフォルト説明
LOCAL_UPLOAD_DIR./data/uploadsローカルストレージのディレクトリ
LOCAL_UPLOAD_BASE_URL空(相対パスを返します)公開 base URL — 設定しないとフロントエンドが添付ファイルの完全な URL を解決できません

CloudFront(任意)

S3 の前段に CloudFront を置く場合、3 つの変数が適用されます: CLOUDFRONT_DOMAINCLOUDFRONT_KEY_PAIR_IDCLOUDFRONT_PRIVATE_KEY(または Secrets Manager から読み込むには CLOUDFRONT_PRIVATE_KEY_SECRET)。CloudFront を使わない場合はスキップしてください — S3 設定とは競合しません。

変数デフォルト説明
COOKIE_DOMAINセッション cookie のスコープ
  • : cookie は訪問した正確なホストでのみ有効です(単一ホストのデプロイに適切)
  • .example.com に設定: cookie がサブドメイン間で共有されます(そのため app.example.comapi.example.com がサインインセッションを共有します)
  • 警告: IP アドレスにはできません(ブラウザは無視します)

誰がサインアップできるかを制限する

3 つの許可リストの層が優先順位に従って組み合わされます。いずれか 1 つの層でも空でない値に設定されると、一致しないメールは拒否されますALLOW_SIGNUP=true でさえこれを上書きできません。

変数デフォルト説明
ALLOWED_EMAILS明示的なメール許可リスト(カンマ区切り)。空でない場合、リストにあるメールのみがサインアップできます
ALLOWED_EMAIL_DOMAINSドメイン許可リスト(カンマ区切り)。空でない場合、リストにあるドメインのみがサインアップできます
ALLOW_SIGNUPtrueサインアップのマスタースイッチ。サインアップを完全に無効にするには false に設定

直感に反する部分: ALLOWED_EMAIL_DOMAINS=company.io + ALLOW_SIGNUP=true は「company.io または全員を許可」という意味ではなくcompany.io のみを許可という意味です。許可リストの層は AND セマンティクスです — 完全な決定木はサインインとサインアップの設定 → サインアップ許可リストにあります。

招待フロー自体はサインアップ許可リストをチェックしません — ただし、招待された人は招待を承諾する前に依然としてサインインできる必要があります。すでに Multica アカウントを持っている場合(例: 別のワークスペースから)、許可リストの影響を受けずに直接承諾できます。一度もサインアップしたことがない場合、サインインの最初のステップ(検証コードの要求)は依然として許可リストのチェックを通過し、ALLOW_SIGNUP=falseALLOWED_EMAILS / ALLOWED_EMAIL_DOMAINS によって拒否されたメールはサインアップを完了できず、したがって招待を承諾できません

ワークスペース作成をロックダウンする

ALLOW_SIGNUP=false は新しいアカウントをブロックしますが、すでにサインイン済みのユーザーが POST /api/workspaces 経由で別のワークスペースを作成することはブロックしません。すべてのイシュー、リポジトリ、エージェントがプラットフォーム管理者に見えなければならないセルフホストインスタンスでは、そのギャップを塞ぐために DISABLE_WORKSPACE_CREATION=true を設定してください。

変数デフォルト説明
DISABLE_WORKSPACE_CREATIONfalsetrue の場合、POST /api/workspaces へのすべての呼び出しが 403 workspace creation is disabled for this instance を返します。Web UI は /api/config 経由ですべての「ワークスペース作成」要素を非表示にします。役割 / owner の例外はありません — このゲートはインスタンス単位で全体に適用されます

推奨されるブートストラップ手順:

  1. DISABLE_WORKSPACE_CREATION を設定しないまま(デフォルト)インスタンスを起動します。
  2. 管理者としてサインインし、共有ワークスペースを作成します。
  3. DISABLE_WORKSPACE_CREATION=true を設定してバックエンドを再起動します。この時点から、ユーザーは招待によってのみ参加できます。

招待されたユーザーが最初の検証コードでサインアップを完了できるよう ALLOW_SIGNUP=true を維持したい場合は、DISABLE_WORKSPACE_CREATION=trueALLOWED_EMAIL_DOMAINS / ALLOWED_EMAILS と組み合わせて、どのアドレスがサインアップできるかの範囲を指定してください。ALLOW_SIGNUP=false を設定すると、保留中の招待対象者がアカウントを作成すること自体も追加でブロックされます — すべてのメンバーがすでに Multica アカウントを持っているインスタンスでのみ有用です。

レート制限(任意の Redis)

公開 auth エンドポイント — /auth/send-code/auth/verify-code/auth/google — の前段には、IP ごとの固定ウィンドウのレート制限があります。リミッターは Redis によって支えられています。REDIS_URL を設定しない場合、ミドルウェアは no-op(fail-open)になり、バックエンドは起動時に rate limiting disabled: REDIS_URL not configured をログに記録します。

変数デフォルト説明
REDIS_URLRedis 接続 URL(例: redis://localhost:6379/0)。設定しないと auth エンドポイントのレート制限が無効になります。同じ Redis はリアルタイムハブの fan-out、PAT キャッシュ、デーモントークンキャッシュでも使われます — 設定しない場合はすべてインメモリ / 直接 DB モードにフォールバックします
REDIS_DISABLE_CLIENT_NAMEfalsetrue に設定すると、すべての Redis 接続で CLIENT SETNAME ハンドシェイクをスキップします。CLIENT コマンドをブロックするマネージド Redis プロバイダー(GCP Memorystore や ACL 制限付きの AWS ElastiCache など)を使用する場合に必須です。有効にすると CLIENT LIST 出力で接続の説明的な名前が失われますが、制限付きプロバイダーとの互換性が得られます
RATE_LIMIT_AUTH5/auth/send-code および /auth/google に対する IP あたり毎分の最大リクエスト数
RATE_LIMIT_AUTH_VERIFY20/auth/verify-code に対する IP あたり毎分の最大リクエスト数
RATE_LIMIT_TRUSTED_PROXIESリミッターがその X-Forwarded-For ヘッダーを信頼することを許可する、カンマ区切りの CIDR。空(デフォルト)は XFF を決して信頼しないことを意味します — リミッターは直接接続の RemoteAddr のみを使用します

リクエストが制限を超えると、サーバーは 429 Too Many RequestsRetry-After: 60、そして本文 {"error":"too many requests"} で応答します。

リバースプロキシの背後では RATE_LIMIT_TRUSTED_PROXIES を必ず設定する必要があります。 そうしないと、バックエンドの観点ではすべての実際のユーザーがプロキシの IP を共有することになり、デプロイ全体が 1 つのバケットに入り、/auth/send-code がサイト全体で毎分 5 リクエストになってしまいます。一般的な値: 同一ホストの Caddy / Nginx には 127.0.0.1/32,::1/128、Cloudflare / ALB / CloudFront には該当 CDN が公開している IP 範囲。RemoteAddr がこれらの CIDR のいずれかに含まれる IP のみが、X-Forwarded-For を使ってクライアントを識別できます。

この独立した RATE_LIMIT_TRUSTED_PROXIES は、オートパイロット webhook リミッター(/api/webhooks/autopilots/{token})を制御する MULTICA_TRUSTED_PROXIES とは異なります。各リミッターは自身のリストをパースするため、プロキシの背後にあるデプロイは両方を設定すべきです。

デーモンのチューニングパラメータ

デーモンはユーザーのローカルマシン上で実行され、その設定もローカル環境変数から読み込まれます。一般的なものは次のとおりです。

変数デフォルト説明
MULTICA_SERVER_URLws://localhost:8080/wsサーバーアドレス(セルフホスト: 自身のドメインに置き換えてください)
MULTICA_DAEMON_DEVICE_NAMEホスト名Runtimes 画面に表示されるデバイス名
MULTICA_AGENT_RUNTIME_NAME組み込みデフォルトランタイムの表示名
MULTICA_DAEMON_HEARTBEAT_INTERVAL15sハートビート間隔
MULTICA_DAEMON_POLL_INTERVAL3sタスクのポーリング間隔
MULTICA_DAEMON_MAX_CONCURRENT_TASKS20最大同時タスク数
MULTICA_AGENT_TIMEOUT0エージェント実行あたりの絶対壁時計上限。0 は上限なしを意味し、実行時間は inactivity watchdog のみで抑えられます。ハードなリソース/コスト上限が欲しい場合は正の Go 期間を設定してください
MULTICA_CODEX_SEMANTIC_INACTIVITY_TIMEOUT10mCodex 固有の inactivity watchdog の待ち時間
MULTICA_CODEX_HANDSHAKE_TIMEOUT30sCodex app-server 起動 RPC のタイムアウト
MULTICA_DAEMON_AUTO_UPDATEcloud: true, self-host: falsefalse/0/no/off でデーモンの CLI 自動アップデートを無効化。true/1/yes/on はセルフホストのデーモンにアップストリーム更新を購読させます
MULTICA_DAEMON_AUTO_UPDATE_INTERVAL6hデーモンが CLI の新リリースを GitHub でチェックする間隔
MULTICA_<PROVIDER>_PATHCLI 名に一致各 AI コーディングツールの実行ファイルへのパス(例: MULTICA_CLAUDE_PATH
MULTICA_<PROVIDER>_MODEL各 AI コーディングツールのデフォルトモデル
MULTICA_<PROVIDER>_ARGSバックエンドごとのデーモン全体のデフォルト CLI 引数。各タスクに対し、各エージェント自身の custom_args より前に適用される。MULTICA_CLAUDE_ARGSMULTICA_CODEX_ARGSMULTICA_CODEBUDDY_ARGS をサポート

デーモン設定を config.json に永続化する

上表の各デーモンキー — device_nameruntime_namemax_concurrent_taskspoll_intervalheartbeat_intervalagent_timeoutcodex_semantic_inactivity_timeoutcodex_handshake_timeoutdisable_auto_updateauto_update_check_interval — は、プロファイルの ~/.multica/config.json(もしくは ~/.multica/profiles/<name>/config.json)に永続化することもできます。これにより、daemon start のたびにフラグを再指定したり環境変数を export したりする必要がなくなります。

multica config set device_name my-vm-custom-name
multica config set runtime_name worker-a
multica config set max_concurrent_tasks 8
multica config set poll_interval 10s          # Go の期間、必ず > 0
multica config set heartbeat_interval 30s
multica config set agent_timeout 1h           # 0s を渡すと壁時計上限を明示的に無効化
multica config set codex_semantic_inactivity_timeout 15m
multica config set codex_handshake_timeout 45s
multica config set disable_auto_update true   # 単方向: 自動アップデートを無効化する用途のみ
multica config set auto_update_check_interval 12h

期間系キーは正の Go 期間(500ms10s1m30s など)のみを受け付けます。0s、負値、パース不能な文字列は config set の時点で拒否されます。ただし agent_timeout は例外で、ここでは 0s は「壁時計上限を明示的に無効化する」意味を持つ有効値です(負値はやはり拒否されます)。永続化した値をクリアして環境変数 / 組み込みデフォルトに戻すには空文字を渡してください: multica config set poll_interval ""

disable_auto_update は単方向のブール値です。true にするとデーモンの CLI 自動アップデートを無効化し、false(もしくは "" でクリア)にすると判定を MULTICA_DAEMON_AUTO_UPDATE / cloud-vs-self-host のデフォルトに委ねます。config ファイルから自動アップデートを 強制的に有効化 することはできません。

優先順位は上から順に: daemon start--flag > MULTICA_… 環境変数 > config.json > 組み込みデフォルト。systemd unit などで環境変数を設定するとファイルより優先され、明示的な CLI フラグは両者よりさらに優先されます。

--profile <name> で同一ホスト上に複数のデーモンを走らせるときに特に有用です。プロファイルごとに device_name を独立して設定すれば、Runtimes 画面でも共有ホスト名で潰れることなく別々の行として区別できます。

各パラメータがデーモンの動作にどう影響するかの完全な説明は、デーモンとランタイムを参照してください。

デフォルトのエージェント引数(MULTICA_<PROVIDER>_ARGS

バックエンドに対してフリート全体のデフォルトとなる CLI フラグの層を設定します。各エージェントの custom_args を個別に編集することなく、デーモン上のすべてのエージェントにデフォルトのコスト・リソースのベースライン(例: --max-turns)を適用できる便利な手段です。これはデフォルトの層であり、超えられない上限ではありません。各エージェント自身の custom_args が後から追加され、これを上書きできます(下記の優先順位を参照)。

  • 優先順位: デフォルト引数が先に適用され、その後に各エージェント自身の custom_args が追加されます。値を取るフラグについては、下流 CLI 自身の引数パーサーが最終的な勝者を決めます(多くのツールでは最後の出現が優先)。そのため個々のエージェントはデーモンのデフォルトを引き上げられますが、エージェントが上書きしない箇所ではデフォルトが引き続き有効です。
  • パース: 値は POSIX シェルワード規則で分割されるため、クォートが使えます——MULTICA_CLAUDE_ARGS='--append-system-prompt "multi word"' は 2 つのトークンに解析されます。
  • 安全性: デフォルト引数の層と各エージェントの custom_args の層は、いずれも同じ blocked-flags フィルターを通過します。そのためプロトコル上重要なフラグ(Claude の -p--output-format--input-format--permission-mode--mcp-config、および Codex の --listen など)はどちらの層からも注入できません。
  • 未設定・空 の場合は動作に変化はありません。

フロントエンドのアクセス制御

変数デフォルト説明
FRONTEND_ORIGINフロントエンドアドレス。招待メールのリンク、CORS 許可リスト、cookie ドメインはすべてこの値から派生します。設定しない場合、招待メールのリンクはホスト型ドメイン https://multica.ai にフォールバックします — セルフホストはこれを明示的に設定する必要があります
CORS_ALLOWED_ORIGINS追加で許可する CORS origin(カンマ区切り)
ALLOWED_ORIGINSWebSocket 専用の origin 許可リスト(カンマ区切り)。設定しない場合、フォールバック順序は CORS_ALLOWED_ORIGINSFRONTEND_ORIGINlocalhost:3000/5173/5174 です

FRONTEND_ORIGIN を設定しないと 2 つの静かな失敗が発生します: (1) 招待メールのリンクが https://multica.ai(ホスト型ドメイン)を指し、クリックしてもユーザーがセルフホストインスタンスに戻ってこない。(2) WebSocket の Origin チェックが localhost:3000 / 5173 / 5174 にフォールバックするため、プロダクションデプロイのすべての WebSocket 接続が拒否され、フロントエンドが「リアルタイム更新を受け取れない」ように見える。

GitHub 連携

GitHub PR ↔ イシュー連携には 2 つの必須変数が必要です。設定で Connect GitHub を有効にし、受信 webhook を受け付けるには両方を設定してください。さらに 2 つの任意変数を設定すると、インストール時点で連携先のアカウント名を取得できます。

変数デフォルト説明
GITHUB_APP_SLUGGitHub App の slug(https://github.com/apps/<slug> の末尾部分)。設定 → GitHub のインストールボタン URL を構成します
GITHUB_WEBHOOK_SECRETGitHub App に設定した Webhook secret。すべての pull_request / installation delivery の HMAC-SHA256 検証に使われ、setup コールバックの state token の HMAC キーとしても使われます
GITHUB_APP_ID任意。App 設定ページに表示される数値の App ID。GITHUB_APP_PRIVATE_KEY と併せて設定すると、setup コールバックがインストール時点で GitHub から連携先のアカウント名を取得できます
GITHUB_APP_PRIVATE_KEY任意。App の RSA 秘密鍵の完全な PEM ブロック(-----BEGIN/END----- 行を含み、改行を保ったまま)。GitHub の App 認証 REST 呼び出しに必要な短命 JWT の発行に使われます

いずれかの必須変数が設定されていない場合の動作:

  • 設定 → GitHub の Connect GitHub無効になり、admin に「not configured」というヒントを表示します。
  • /api/webhooks/github エンドポイントは 503 github webhooks not configured を返します — Multica はすべての署名を有効として扱うのではなく、secret なしではイベント処理を拒否します。

任意の GITHUB_APP_ID / GITHUB_APP_PRIVATE_KEY が設定されていない場合の動作:

  • インストール直後、接続カードには一時的に Connected to unknown と表示されます。GitHub から installation.created webhook が届くと(通常は数秒以内)、Multica は行を実際の組織名/ユーザー名に更新し、リアルタイムブロードキャストを発行するため、開いている Settings → GitHub タブは手動更新なしで反映されます。

注: GITHUB_WEBHOOK_SECRET はインストールフローの state token の署名キーとして再利用されるため、運用者は secret を 1 つだけ管理すればよいです。これは GitHub App の Client secret ではありません — Client secret は OAuth 関連であり、この連携では使われません。完全な手順は GitHub 連携 → セルフホストのセットアップを参照してください。

使用量分析

デフォルトでは、サーバーは Multica の公式 PostHog インスタンスにレポートします。オプトアウトするには ANALYTICS_DISABLED=true を設定してください。

変数デフォルト説明
ANALYTICS_DISABLEDfalseバックエンド分析を完全に無効にするには true に設定
POSTHOG_API_KEY組み込みのデフォルトキー自身の PostHog インスタンスを指す場合に設定
POSTHOG_HOSThttps://us.i.posthog.comPostHog をセルフホストする場合は自身のホストに変更

次へ