構成管理
Twentyは、異なる展開ニーズに合わせて2つの構成モードを提供します: 管理パネルアクセス: 管理者権限を持つユーザーだけが (canAccessFullAdminPanel: true) 構成インターフェースにアクセスできます。
1. 管理パネル構成(デフォルト)
- Twentyインスタンスにアクセスしてください (通常は
http://localhost:3000) - 設定 / 管理パネル / 構成変数に移動
- 統合、メール、ストレージなどを構成します
- 変更はすぐに(マルチコンテナ展開の場合、15秒以内に)効果が出ます。
- 認証 - Google/Microsoft OAuth、パスワード設定
- メール - SMTP設定、テンプレート、検証
- ストレージ - S3構成、ローカルストレージパス
- 統合 - Gmail、Googleカレンダー、Microsoftサービス
- ワークフローとレート制限 - 実行制限、APIスロットリング
- さらに多くのこと…

暗号鍵
Twenty は、環境変数でのみ設定可能な暗号鍵を 2 つ使用します:
後方互換性のため、
ENCRYPTION_KEY が未設定の場合、Twenty は保存時の暗号化に APP_SECRET をフォールバックとして使用します。これは、旧来のデプロイメントにおける従来の動作と一致します。 新規インストールでは、必ず専用の ENCRYPTION_KEY を設定してください。
openssl rand -base64 32 で値を生成し、シークレットマネージャーやシールドされた構成など、安全な場所に保管してください。 ENCRYPTION_KEY を失うことは、データベースに保存されているすべての秘密情報へのアクセスを失うことを意味します。
ダウンタイムなしで ENCRYPTION_KEY をローテーションする方法については、キー ローテーション ガイド を参照してください。
2. 環境のみの構成
.env ファイルで管理されます:
.envファイル内でIS_CONFIG_VARIABLES_IN_DB_ENABLED=falseを設定- すべての構成変数を
.envファイルに追加 - 変更を有効にするためにコンテナを再起動してください
- 管理パネルは現在の値を表示しますが、修正はできません
マルチワークスペースモード
デフォルトでは、Twenty はシングルワークスペースモードで動作します—組織向けに 1 つの CRM インスタンスが必要な多くのセルフホスト型デプロイメントに最適です。シングルワークスペースモード(デフォルト)
- Twenty の各インスタンスにつき 1 つのワークスペース
- 最初のユーザーは自動的にフル権限の管理者になります(
canImpersonateとcanAccessFullAdminPanel) - 最初のワークスペース作成後は新規サインアップが無効になります
- シンプルな URL 構造:
https://your-domain.com
マルチワークスペースモードの有効化
- 同一インスタンス上に複数のワークスペースを作成できます
- 各ワークスペースに専用のサブドメインが割り当てられます(例:
sales.your-domain.com、marketing.your-domain.com) - ユーザーは
{DEFAULT_SUBDOMAIN}.your-domain.comでサインアップおよびログインします(例:app.your-domain.com) - 管理者権限は自動付与されません—各ワークスペースの最初のユーザーは一般ユーザーです
- サブドメインやカスタムドメインなどのワークスペース固有の設定がワークスペース設定で利用可能になります
マルチワークスペース向けの DNS 構成
マルチワークスペースモードを使用する場合、動的なサブドメイン作成を可能にするために、ワイルドカードレコードで DNS を構成してください:ワークスペース作成の制限
マルチワークスペースモードでは、新しいワークスペースを作成できるユーザーを制限したい場合があります:canAccessFullAdminPanel を持つユーザーのみが追加のワークスペースを作成できます。 初回サインアップ時には、ユーザーは引き続き最初のワークスペースを作成できます。
Gmail & Googleカレンダー統合
Google Cloudプロジェクトを作成
- Google Cloud Console にアクセス
- 新しいプロジェクトを作成するか既存のプロジェクトを選択
- 以下のAPIを有効にします:
OAuthの構成
- 資格情報にアクセス
- OAuth 2.0 クライアントIDを作成
- 次のリダイレクトURIを追加:
https://{your-domain}/auth/google/redirect(SSO用)https://{your-domain}/auth/google-apis/get-access-token(統合用)
Twentyで構成
- 設定 → 管理パネル → 構成変数 に移動
- Google Auth セクションを見つけます
- 次の変数を設定:
MESSAGING_PROVIDER_GMAIL_ENABLED=trueCALENDAR_PROVIDER_GOOGLE_ENABLED=trueAUTH_GOOGLE_CLIENT_ID={client-id}AUTH_GOOGLE_CLIENT_SECRET={client-secret}AUTH_GOOGLE_CALLBACK_URL=https://{your-domain}/auth/google/redirectAUTH_GOOGLE_APIS_CALLBACK_URL=https://{your-domain}/auth/google-apis/get-access-token
https://www.googleapis.com/auth/calendar.eventshttps://www.googleapis.com/auth/gmail.readonlyhttps://www.googleapis.com/auth/profile.emails.read
アプリがテストモードの場合
アプリがテストモードの場合、プロジェクトにテストユーザーを追加する必要があります。 OAuth 同意画面で、「テストユーザー」セクションにテストユーザーを追加してください。Microsoft 365 統合
Microsoft Azureでプロジェクトを作成
Microsoft Azureでプロジェクトを作成し、資格情報を取得してください。APIを有効にする
Microsoft Azureコンソールで”権限”の欄で以下のAPIを有効にします:- Microsoft Graph: Mail.ReadWrite
- Microsoft Graph: Mail.Send
- Microsoft Graph: Calendars.Read
- Microsoft Graph: User.Read
- Microsoft Graph: openid
- Microsoft Graph: email
- Microsoft Graph: profile
- Microsoft Graph: offline_access
“Mail.ReadWrite” と “Mail.Send” は、ワークフローアクションを使用してメールを送信する場合にのみ必須です。 メールを受信するだけの場合は、“Mail.Read”を使用できます。
ワークフローアクションを使用してカレンダーイベントを作成する場合は、“Calendars.ReadWrite” が必須です。 カレンダーイベントを同期するだけの場合は、“Calendars.Read” を使用してください。
認証されたリダイレクトURI
プロジェクトに次のリダイレクトURIを追加する必要があります:https://{your-domain}/auth/microsoft/redirectマイクロソフトSSO を使用する場合https://{your-domain}/auth/microsoft-apis/get-access-token
Twentyで構成
- 設定 → 管理パネル → 構成変数 に移動
- Microsoft Auth セクションを見つけます
- 次の変数を設定:
MESSAGING_PROVIDER_MICROSOFT_ENABLED=trueCALENDAR_PROVIDER_MICROSOFT_ENABLED=trueAUTH_MICROSOFT_ENABLED=trueAUTH_MICROSOFT_CLIENT_ID={client-id}AUTH_MICROSOFT_CLIENT_SECRET={client-secret}AUTH_MICROSOFT_CALLBACK_URL=https://{your-domain}/auth/microsoft/redirectAUTH_MICROSOFT_APIS_CALLBACK_URL=https://{your-domain}/auth/microsoft-apis/get-access-token
スコープを構成
関連ソースコードを見る- ‘openid’
- ‘メール’
- ‘プロフィール’
- ‘offline_access’
- ‘Mail.ReadWrite’
- ‘Mail.Send’
- ‘Calendars.Read’
アプリがテストモードの場合
アプリがテストモードの場合、プロジェクトにテストユーザーを追加する必要があります。 「ユーザーとグループ」セクションにテストユーザーを追加してください。カレンダーとメッセージングのバックグラウンドジョブ
Gmail、Googleカレンダー、またはMicrosoft 365統合を構成した後、データを同期するバックグラウンドジョブを開始する必要があります。 次の定期ジョブをワーカーコンテナに登録してください:メール設定
- 設定 → 管理パネル → 構成変数 に移動
- メール セクションを見つけます
- SMTP設定を構成:
- Gmail
- Office365
- smtp4dev
アプリパスワードを準備する必要があります。
- EMAIL_DRIVER=smtp
- EMAIL_SMTP_HOST=smtp.gmail.com
- EMAIL_SMTP_PORT=465
- EMAIL_SMTP_USER=gmail_email_address
- EMAIL_SMTP_PASSWORD=‘gmail_app_password’
S3 ストレージ
STORAGE_TYPE=S_3 を設定し、管理パネルまたは .env から STORAGE_S3_* 変数を設定してください。 S3 変数の全一覧については、config-variables.ts リファレンス を参照してください。
CORS に依存する機能(例: ブラウザ内でのファイルダウンロード)で S3 を使用する場合は、バケットの CORS 設定で Twenty フロントエンドのオリジンが許可されていることを確認してください。
ロジック関数とコードインタープリター
Twenty は、ワークフロー向けのロジック関数と、AI データ分析用のコードインタープリターをサポートします。 どちらもユーザー提供のコードを実行し、セキュリティのために明示的な設定が必要です。セキュリティのデフォルト
本番環境 (NODE_ENV=production): ロジック関数とコードインタープリターはいずれもデフォルトで無効です。 これらの機能が必要な場合は、LOGIC_FUNCTION_TYPE と CODE_INTERPRETER_TYPE で明示的に有効化する必要があります。
開発環境 (NODE_ENV=development): ローカルでの実行を容易にするため、どちらもデフォルトではLOCALです。
ロジック関数 - 利用可能なドライバー
ロジック関数 - 推奨構成
開発向け:コードインタープリター - 利用可能なドライバー
LOGIC_FUNCTION_TYPE=DISABLED または CODE_INTERPRETER_TYPE=DISABLED を使用している場合、実行しようとするとエラーが返されます。 これは、これらの機能なしで Twenty を実行したい場合に便利です。API とフロントエンドが別ホスト上にある場合
バックエンドにフロントエンドを配信させない場合にのみ関連します。 同一オリジンでのデプロイの場合、ここで設定する必要はありません。 API と通信するすべてのブラウザーオリジンを、カンマ区切りで指定してください。SERVER_URL
および FRONTEND_URL は既に信頼済みです。 ブラウザーが宣言されていないオリジンからサーバーを呼び出すと、サーバーは警告をログに記録します。
AUTH_COOKIE_SAME_SITE=none も設定してください。これは HTTPS を必須とします。
マルチワークスペースが有効な場合、ここにすべてのワークスペースのサブドメインを列挙しないでください。
代わりに、各ワークスペースのホスト名ごとに API パス(/graphql、/metadata、/rest、/auth/、/client-config、/file)をバックエンドにルーティングし、すべてのワークスペースが同一オリジンを維持するようにします。Twenty Cloud はこの方式で稼働しています。