Passer au contenu principal

Gestion de la configuration

Première installation ? Suivez le Guide d’installation de Docker Compose pour faire fonctionner Twenty, puis revenez ici pour la configuration.
Twenty offre deux modes de configuration pour répondre à différents besoins de déploiement : Accès au panneau d’administration : Seuls les utilisateurs avec des privilèges d’administrateur (canAccessFullAdminPanel: true) peuvent accéder à l’interface de configuration.

1. Configuration du panneau d’administration (par défaut)

IS_CONFIG_VARIABLES_IN_DB_ENABLED=true  # default
La plupart des configurations se fait via l’interface utilisateur après l’installation :
  1. Accédez à votre instance Twenty (généralement http://localhost:3000)
  2. Allez dans Paramètres / Panneau d’administration / Variables de configuration
  3. Configurez les intégrations, les e-mails, le stockage et plus encore
  4. Les modifications prennent effet immédiatement (dans les 15 secondes pour les déploiements multi-conteneurs)
Déploiements multi-conteneurs : En utilisant la configuration de la base de données (IS_CONFIG_VARIABLES_IN_DB_ENABLED=true), les conteneurs serveur et travailleur lisent à partir de la même base de données. Les modifications du panneau d’administration affectent les deux automatiquement, éliminant le besoin de dupliquer les variables d’environnement entre les conteneurs (sauf pour les variables d’infrastructure).
Ce que vous pouvez configurer via le panneau d’administration :
  • Authentification - Google/Microsoft OAuth, paramètres de mot de passe
  • E-mail - Paramètres SMTP, modèles, vérification
  • Stockage - Configuration S3, chemins de stockage local
  • Intégrations - Gmail, Google Agenda, services Microsoft
  • Workflow & Limitation de débit - Limites d’exécution, limitation de l’API
  • Et bien plus encore…
Variables de configuration du panneau d'administration
Chaque variable est documentée avec des descriptions dans votre panneau d’administration sous Paramètres → Panneau d’administration → Variables de configuration. Certains paramètres d’infrastructure comme les connexions de base de données (PG_DATABASE_URL), les URL du serveur (SERVER_URL) et les secrets (ENCRYPTION_KEY, FALLBACK_ENCRYPTION_KEY) ne peuvent être configurés que via le fichier .env.Référence technique complète →

Clés de chiffrement

Twenty utilise deux clés de chiffrement uniquement définissables via des variables d’environnement :
VariableObjectifObligatoire
ENCRYPTION_KEYClé principale utilisée pour chiffrer les secrets au repos (jetons OAuth, variables d’application, clés privées de signature, secrets TOTP, valeurs de configuration sensibles).Oui pour les nouvelles installations (les anciennes installations peuvent s’appuyer à la place sur APP_SECRET — voir ci-dessous)
FALLBACK_ENCRYPTION_KEYClé utilisée uniquement pour la vérification. Définie lors d’une rotation sur l’ancienne valeur de ENCRYPTION_KEY afin que les lignes existantes restent déchiffrables.Uniquement pendant la rotation
Pour assurer la rétrocompatibilité, si ENCRYPTION_KEY n’est pas défini, Twenty se rabat sur APP_SECRET pour le chiffrement au repos, ce qui correspond au comportement historique des anciens déploiements. Les nouvelles installations doivent toujours définir une ENCRYPTION_KEY dédiée. Générez les valeurs avec openssl rand -base64 32 et stockez-les dans un endroit sûr (un gestionnaire de secrets, une configuration scellée, etc.). Perdre ENCRYPTION_KEY signifie perdre l’accès à tous les secrets stockés dans la base de données. Pour faire pivoter ENCRYPTION_KEY sans temps d’arrêt, consultez le guide de rotation des clés.

2. Configuration réservée à l’environnement

IS_CONFIG_VARIABLES_IN_DB_ENABLED=false
Toute la configuration est gérée via les fichiers .env :
  1. Définissez IS_CONFIG_VARIABLES_IN_DB_ENABLED=false dans votre fichier .env
  2. Ajoutez toutes les variables de configuration à votre fichier .env
  3. Redémarrez les conteneurs pour que les modifications prennent effet
  4. Le panneau d’administration affichera les valeurs actuelles mais ne pourra pas les modifier

Mode multi-espaces de travail

Par défaut, Twenty fonctionne en mode à espace de travail unique — idéal pour la plupart des déploiements auto-hébergés où vous avez besoin d’une seule instance CRM pour votre organisation.

Mode à espace de travail unique (par défaut)

IS_MULTIWORKSPACE_ENABLED=false  # default
  • Un espace de travail par instance Twenty
  • Le premier utilisateur devient automatiquement administrateur avec tous les privilèges (canImpersonate et canAccessFullAdminPanel)
  • Les nouvelles inscriptions sont désactivées après la création du premier espace de travail
  • Structure d’URL simple : https://your-domain.com

Activation du mode multi-espaces de travail

IS_MULTIWORKSPACE_ENABLED=true
DEFAULT_SUBDOMAIN=app  # default value
Activez le mode multi-espaces de travail pour des déploiements de type SaaS où plusieurs équipes indépendantes ont besoin de leurs propres espaces de travail sur la même instance Twenty. Principales différences par rapport au mode à espace de travail unique :
  • Plusieurs espaces de travail peuvent être créés sur la même instance
  • Chaque espace de travail possède son propre sous-domaine (par exemple, sales.your-domain.com, marketing.your-domain.com)
  • Les utilisateurs s’inscrivent et se connectent sur {DEFAULT_SUBDOMAIN}.your-domain.com (par exemple, app.your-domain.com)
  • Aucun privilège d’administrateur automatique — le premier utilisateur de chaque espace de travail est un utilisateur standard
  • Des paramètres spécifiques à l’espace de travail, comme le sous-domaine et le domaine personnalisé, deviennent disponibles dans les paramètres de l’espace de travail
Paramètre réservé à l’environnement : IS_MULTIWORKSPACE_ENABLED ne peut être configuré que via le fichier .env et nécessite un redémarrage. Il ne peut pas être modifié via le panneau d’administration.

Configuration DNS pour le mode multi-espaces de travail

Lorsque vous utilisez le mode multi-espaces de travail, configurez votre DNS avec un enregistrement générique (wildcard) pour permettre la création dynamique de sous-domaines :
*.your-domain.com -> your-server-ip
Cela active le routage automatique des sous-domaines pour les nouveaux espaces de travail, sans configuration DNS manuelle.

Restreindre la création d’espaces de travail

En mode multi-espaces de travail, vous pouvez souhaiter limiter qui peut créer de nouveaux espaces de travail :
IS_WORKSPACE_CREATION_LIMITED_TO_SERVER_ADMINS=true
Lorsqu’il est activé, seuls les utilisateurs disposant de canAccessFullAdminPanel peuvent créer des espaces de travail supplémentaires. Les utilisateurs peuvent toujours créer leur premier espace de travail lors de l’inscription initiale.

Intégration Gmail & Google Agenda

Créer un projet Google Cloud

  1. Allez dans Google Cloud Console
  2. Créez un nouveau projet ou sélectionnez-en un existant
  3. Activez ces API :

Configurez OAuth

  1. Allez dans Identifiants
  2. Créez un identifiant client OAuth 2.0
  3. Ajoutez ces URI de redirection :
    • https://{your-domain}/auth/google/redirect (pour le SSO)
    • https://{your-domain}/auth/google-apis/get-access-token (pour les intégrations)

Configurez dans Twenty

  1. Allez dans Paramètres → Panneau d’administration → Variables de configuration
  2. Retrouvez la section Google Auth
  3. Définissez ces variables :
    • MESSAGING_PROVIDER_GMAIL_ENABLED=true
    • CALENDAR_PROVIDER_GOOGLE_ENABLED=true
    • AUTH_GOOGLE_CLIENT_ID={client-id}
    • AUTH_GOOGLE_CLIENT_SECRET={client-secret}
    • AUTH_GOOGLE_CALLBACK_URL=https://{your-domain}/auth/google/redirect
    • AUTH_GOOGLE_APIS_CALLBACK_URL=https://{your-domain}/auth/google-apis/get-access-token
Mode réservé à l’environnement : Si vous définissez IS_CONFIG_VARIABLES_IN_DB_ENABLED=false, ajoutez ces variables à votre fichier .env à la place.
Scopes requis (configurés automatiquement) : Voir le code source pertinent
  • https://www.googleapis.com/auth/calendar.events
  • https://www.googleapis.com/auth/gmail.readonly
  • https://www.googleapis.com/auth/profile.emails.read

Si votre application est en mode test

Si votre application est en mode test, vous devez ajouter des utilisateurs test à votre projet. Sous Écran de consentement OAuth, ajoutez vos utilisateurs test à la section “Utilisateurs test”.

Intégration Microsoft 365

Les utilisateurs doivent avoir une licence Microsoft 365 pour pouvoir utiliser les API Calendrier et Messagerie. Ils ne pourront pas synchroniser leur compte sur Twenty sans cela.

Créez un projet dans Microsoft Azure

Vous devrez créer un projet dans Microsoft Azure et obtenir les identifiants.

Activez les API

Sur la console Microsoft Azure, activez les API suivantes dans “Autorisations” :
  • 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
Remarque : “Mail.ReadWrite” et “Mail.Send” ne sont obligatoires que si vous souhaitez envoyer des e-mails en utilisant nos actions de flux de travail. Vous pouvez utiliser “Mail.Read” à la place si vous souhaitez uniquement recevoir des e-mails.

URI de redirection autorisées

Vous devez ajouter les URI de redirection suivantes à votre projet :
  • https://{your-domain}/auth/microsoft/redirect si vous souhaitez utiliser Microsoft SSO
  • https://{your-domain}/auth/microsoft-apis/get-access-token

Configurez dans Twenty

  1. Allez dans Paramètres → Panneau d’administration → Variables de configuration
  2. Retrouvez la section Microsoft Auth
  3. Définissez ces variables :
    • MESSAGING_PROVIDER_MICROSOFT_ENABLED=true
    • CALENDAR_PROVIDER_MICROSOFT_ENABLED=true
    • AUTH_MICROSOFT_ENABLED=true
    • AUTH_MICROSOFT_CLIENT_ID={client-id}
    • AUTH_MICROSOFT_CLIENT_SECRET={client-secret}
    • AUTH_MICROSOFT_CALLBACK_URL=https://{your-domain}/auth/microsoft/redirect
    • AUTH_MICROSOFT_APIS_CALLBACK_URL=https://{your-domain}/auth/microsoft-apis/get-access-token
Mode réservé à l’environnement : Si vous définissez IS_CONFIG_VARIABLES_IN_DB_ENABLED=false, ajoutez ces variables à votre fichier .env à la place.

Configurer les scopes

Voir le code source pertinent
  • ‘openid’
  • ‘email’
  • ‘profil’
  • ‘offline_access’
  • ‘Mail.ReadWrite’
  • ‘Mail.Send’
  • ‘Calendars.Read’

Si votre application est en mode test

Si votre application est en mode test, vous devez ajouter des utilisateurs test à votre projet. Ajoutez vos utilisateurs test à la section “Utilisateurs et groupes”.

Tâches en arrière-plan pour Calendrier & Messagerie

Après avoir configuré les intégrations Gmail, Google Agenda ou Microsoft 365, vous devez démarrer les tâches en arrière-plan qui synchronisent les données. Enregistrez les emplois récurrents suivants dans votre conteneur de travailleur :
# from your worker container
yarn command:prod cron:messaging:messages-import
yarn command:prod cron:messaging:message-list-fetch
yarn command:prod cron:calendar:calendar-event-list-fetch
yarn command:prod cron:calendar:calendar-events-import
yarn command:prod cron:messaging:ongoing-stale
yarn command:prod cron:calendar:ongoing-stale
yarn command:prod cron:workflow:automated-cron-trigger

Configuration des Emails

  1. Allez dans Paramètres → Panneau d’administration → Variables de configuration
  2. Retrouvez la section Email
  3. Configurez vos paramètres SMTP :
Mode réservé à l’environnement : Si vous définissez IS_CONFIG_VARIABLES_IN_DB_ENABLED=false, ajoutez ces variables à votre fichier .env à la place.

Stockage S3

Par défaut, Twenty stocke les fichiers téléversés sur le système de fichiers local. Pour les déploiements en production, utilisez S3 ou un service compatible S3 (MinIO, DigitalOcean Spaces, etc.). afin de garantir la persistance des fichiers lors des redémarrages des conteneurs et la montée en charge sur plusieurs instances de serveur.
Définissez STORAGE_TYPE=S_3 et configurez les variables STORAGE_S3_* via le panneau d’administration ou .env. Voir la référence config-variables.ts pour la liste complète des variables S3. Lorsque vous utilisez S3 avec des fonctionnalités dépendantes de CORS (par exemple les téléchargements de fichiers dans le navigateur), assurez-vous que votre compartiment S3 autorise l’origine de votre frontend Twenty dans sa configuration CORS.

Fonctions logiques et interpréteur de code

Twenty prend en charge les fonctions logiques pour les flux de travail et l’interpréteur de code pour l’analyse de données par IA. Les deux exécutent du code fourni par l’utilisateur et nécessitent une configuration explicite pour la sécurité.

Paramètres de sécurité par défaut

En production (NODE_ENV=production): Les fonctions logiques et l’interpréteur de code sont par défaut sur Désactivé. Vous devez les activer explicitement avec LOGIC_FUNCTION_TYPE et CODE_INTERPRETER_TYPE si vous avez besoin de ces fonctionnalités. En développement (NODE_ENV=development): Les deux sont par défaut sur LOCAL pour plus de commodité lors de l’exécution en local.
Avis de sécurité : Le pilote local (LOGIC_FUNCTION_TYPE=LOCAL ou CODE_INTERPRETER_TYPE=LOCAL) exécute le code directement sur l’hôte dans un processus Node.js sans sandboxing. Il ne doit être utilisé que pour du code approuvé en développement. Pour les déploiements en production traitant du code non fiable, utilisez LOGIC_FUNCTION_TYPE=LAMBDA ou CODE_INTERPRETER_TYPE=E2B (avec exécution en bac à sable), ou laissez-les désactivés.

Fonctions logiques - Pilotes disponibles

PiloteVariable d’environnementCas d’utilisationNiveau de sécurité
DésactivéLOGIC_FUNCTION_TYPE=DISABLEDDésactiver complètement les fonctions logiquesN/A
LocalLOGIC_FUNCTION_TYPE=LOCALEnvironnements de développement et approuvésFaible (aucun sandboxing)
LambdaLOGIC_FUNCTION_TYPE=LAMBDAProduction avec du code non approuvéÉlevé (isolement au niveau matériel)

Fonctions logiques - Configuration recommandée

Pour le développement:
LOGIC_FUNCTION_TYPE=LOCAL  # default when NODE_ENV=development
Pour la production (AWS):
LOGIC_FUNCTION_TYPE=LAMBDA
LOGIC_FUNCTION_LAMBDA_REGION=us-east-1
LOGIC_FUNCTION_LAMBDA_ROLE=arn:aws:iam::123456789:role/your-lambda-role
LOGIC_FUNCTION_LAMBDA_ACCESS_KEY_ID=your-access-key
LOGIC_FUNCTION_LAMBDA_SECRET_ACCESS_KEY=your-secret-key
Pour désactiver les fonctions logiques:
LOGIC_FUNCTION_TYPE=DISABLED  # default when NODE_ENV=production

Interpréteur de code - Pilotes disponibles

PiloteVariable d’environnementCas d’utilisationNiveau de sécurité
DésactivéCODE_INTERPRETER_TYPE=DISABLEDDésactiver l’exécution de code par l’IAN/A
LocalCODE_INTERPRETER_TYPE=LOCALDéveloppement uniquementFaible (aucun sandboxing)
E2BCODE_INTERPRETER_TYPE=E_2_BProduction avec exécution en bac à sableÉlevée (bac à sable isolé)
Lorsque vous utilisez LOGIC_FUNCTION_TYPE=DISABLED ou CODE_INTERPRETER_TYPE=DISABLED, toute tentative d’exécution renverra une erreur. Cela est utile si vous souhaitez exécuter Twenty sans ces capacités.