i18n - docs translations (#15721)
Created by Github action Co-authored-by: github-actions <github-actions@twenty.com>
This commit is contained in:
co-authored by
github-actions
parent
f740bac988
commit
4c4eeef5ae
@@ -0,0 +1,47 @@
|
||||
---
|
||||
title: File d'attente de messages
|
||||
image: /images/user-guide/emails/emails_header.png
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/emails/emails_header.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
Les files d'attente facilitent les opérations asynchrones. Elles peuvent être utilisées pour effectuer des tâches de fond telles que l'envoi d'un e-mail de bienvenue lors de l'enregistrement.
|
||||
Chaque cas d'utilisation aura sa propre classe de file d'attente étendue à partir de `MessageQueueServiceBase`.
|
||||
|
||||
Actuellement, nous ne supportons que `bull-mq`[bull-mq](https://bullmq.io/) comme pilote de file d'attente.
|
||||
|
||||
## Étapes pour créer et utiliser une nouvelle file d'attente
|
||||
|
||||
1. Ajoutez un nom de file d'attente pour votre nouvelle file sous l'énumération `MESSAGE_QUEUES`.
|
||||
2. Fournissez l'implémentation de la fabrique de la file d'attente avec le nom de la file comme dépendance.
|
||||
3. Injectez la file d'attente que vous avez créée dans le module/service requis en utilisant le nom de la file comme dépendance.
|
||||
4. Ajouter une classe de travailleur avec injection basée sur un jeton comme le producteur.
|
||||
|
||||
### Exemple d'utilisation
|
||||
|
||||
```ts
|
||||
class Resolver {
|
||||
constructor(@Inject(MESSAGE_QUEUES.custom) private queue: MessageQueueService) {}
|
||||
|
||||
async onSomeAction() {
|
||||
//business logic
|
||||
await this.queue.add(someData);
|
||||
}
|
||||
}
|
||||
|
||||
//async worker
|
||||
class CustomWorker {
|
||||
constructor(@Inject(MESSAGE_QUEUES.custom) private queue: MessageQueueService) {
|
||||
this.initWorker();
|
||||
}
|
||||
|
||||
async initWorker() {
|
||||
await this.queue.work(async ({ id, data }) => {
|
||||
//worker logic
|
||||
});
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
@@ -0,0 +1,331 @@
|
||||
---
|
||||
title: Configuration Locale
|
||||
description: "Le guide pour les contributeurs (ou les développeurs curieux) qui souhaitent exécuter Twenty localement."
|
||||
image: /images/user-guide/fields/field.png
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/fields/field.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
## Prérequis
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Linux and MacOS">
|
||||
|
||||
Avant de pouvoir installer et utiliser Twenty, assurez-vous d'installer ce qui suit sur votre ordinateur :
|
||||
|
||||
- [Git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git)
|
||||
- [Node v24.5.0](https://nodejs.org/en/download)
|
||||
- [yarn v4](https://yarnpkg.com/getting-started/install)
|
||||
- [nvm](https://github.com/nvm-sh/nvm/blob/master/README.md)
|
||||
|
||||
<Warning>
|
||||
`npm` ne fonctionnera pas, vous devez utiliser `yarn` à la place. Yarn est maintenant intégré avec Node.js, vous n'avez donc pas besoin de l'installer séparément.
|
||||
Vous devez uniquement exécuter `corepack enable` pour activer Yarn si vous ne l'avez pas encore fait.
|
||||
</Warning>
|
||||
|
||||
</Tab>
|
||||
|
||||
<Tab title="Windows (WSL)">
|
||||
|
||||
1. Installer WSL
|
||||
Ouvrez PowerShell en tant qu'administrateur et exécutez :
|
||||
|
||||
```powershell
|
||||
wsl --install
|
||||
```
|
||||
|
||||
Vous devriez maintenant voir une invite pour redémarrer votre ordinateur. Si ce n'est pas le cas, redémarrez-le manuellement.
|
||||
|
||||
Au redémarrage, une fenêtre PowerShell s'ouvrira et installera Ubuntu. Cela peut prendre un peu de temps.
|
||||
Une invite pour créer un nom d'utilisateur et un mot de passe pour votre installation Ubuntu s'affichera.
|
||||
|
||||
2. Installez et configurez git
|
||||
|
||||
```bash
|
||||
sudo apt-get install git
|
||||
|
||||
git config --global user.name "Your Name"
|
||||
|
||||
git config --global user.email "youremail@domain.com"
|
||||
```
|
||||
|
||||
3. Installez nvm, node.js et yarn
|
||||
<Warning>
|
||||
|
||||
Utilisez `nvm` pour installer la version correcte de `node`. Le fichier `.nvmrc` garantit que tous les contributeurs utilisent la même version.
|
||||
|
||||
</Warning>
|
||||
|
||||
```bash
|
||||
sudo apt-get install curl
|
||||
|
||||
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash
|
||||
```
|
||||
|
||||
Fermez et rouvrez votre terminal pour utiliser nvm. Ensuite, exécutez les commandes suivantes.
|
||||
|
||||
```bash
|
||||
|
||||
nvm install # installs recommended node version
|
||||
|
||||
nvm use # use recommended node version
|
||||
|
||||
corepack enable
|
||||
```
|
||||
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
---
|
||||
|
||||
## Étape 1 : Cloner Git
|
||||
|
||||
Dans votre terminal, exécutez la commande suivante.
|
||||
|
||||
<Tabs>
|
||||
<Tab title="SSH (Recommended)">
|
||||
Si vous n'avez pas encore configuré les clés SSH, vous pouvez apprendre à le faire [ici](https://docs.github.com/en/authentication/connecting-to-github-with-ssh/about-ssh).
|
||||
```bash
|
||||
git clone git@github.com:twentyhq/twenty.git
|
||||
```
|
||||
</Tab>
|
||||
<Tab title="HTTPS">
|
||||
|
||||
```bash
|
||||
git clone https://github.com/twentyhq/twenty.git
|
||||
```
|
||||
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
## Étape 2 : Positionnez-vous à la racine
|
||||
|
||||
```bash
|
||||
cd twenty
|
||||
```
|
||||
|
||||
Vous devez exécuter toutes les commandes des étapes suivantes depuis la racine du projet.
|
||||
|
||||
## Étape 3 : Configurez une base de données PostgreSQL
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Linux">
|
||||
**Option 1 (préférée) :** Pour créer votre base de données localement :
|
||||
Utilisez le lien suivant pour installer PostgreSQL sur votre machine Linux : [Installation de PostgreSQL](https://www.postgresql.org/download/linux/)
|
||||
```bash
|
||||
psql postgres -c "CREATE DATABASE \"default\";" -c "CREATE DATABASE test;"
|
||||
```
|
||||
Note : Vous pourriez avoir besoin d'ajouter `sudo -u postgres` à la commande avant `psql` pour éviter des erreurs de permission.
|
||||
|
||||
````
|
||||
**Option 2:** If you have docker installed:
|
||||
```bash
|
||||
make postgres-on-docker
|
||||
```
|
||||
````
|
||||
|
||||
</Tab>
|
||||
<Tab title="Mac OS">
|
||||
**Option 1 (préférée) :** Pour créer votre base de données localement avec `brew` :
|
||||
|
||||
````
|
||||
```bash
|
||||
brew install postgresql@16
|
||||
export PATH="/opt/homebrew/opt/postgresql@16/bin:$PATH"
|
||||
brew services start postgresql@16
|
||||
psql postgres -c "CREATE DATABASE \"default\";" -c "CREATE DATABASE test;"
|
||||
```
|
||||
|
||||
You can verify if the PostgreSQL server is running by executing:
|
||||
```bash
|
||||
brew services list
|
||||
```
|
||||
|
||||
The installer might not create the `postgres` user by default when installing
|
||||
via Homebrew on MacOS. Instead, it creates a PostgreSQL role that matches your macOS
|
||||
username (e.g., "john").
|
||||
To check and create the `postgres` user if necessary, follow these steps:
|
||||
```bash
|
||||
# Connect to PostgreSQL
|
||||
psql postgres
|
||||
or
|
||||
psql -U $(whoami) -d postgres
|
||||
```
|
||||
|
||||
Once at the psql prompt (postgres=#), run:
|
||||
```bash
|
||||
# List existing PostgreSQL roles
|
||||
\du
|
||||
```
|
||||
You'll see output similar to:
|
||||
```bash
|
||||
Role name | Attributes | Member of
|
||||
-----------+-------------+-----------
|
||||
john | Superuser | {}
|
||||
```
|
||||
|
||||
If you do not see a `postgres` role listed, proceed to the next step.
|
||||
Create the `postgres` role manually:
|
||||
```bash
|
||||
CREATE ROLE postgres WITH SUPERUSER LOGIN;
|
||||
```
|
||||
This creates a superuser role named `postgres` with login access.
|
||||
|
||||
**Option 2:** If you have docker installed:
|
||||
```bash
|
||||
make postgres-on-docker
|
||||
```
|
||||
````
|
||||
|
||||
</Tab>
|
||||
<Tab title="Windows (WSL)">
|
||||
Toutes les étapes suivantes doivent être exécutées dans le terminal WSL (dans votre machine virtuelle)
|
||||
|
||||
````
|
||||
**Option 1:** To provision your Postgresql locally:
|
||||
Use the following link to install Postgresql on your Linux virtual machine: [Postgresql Installation](https://www.postgresql.org/download/linux/)
|
||||
```bash
|
||||
psql postgres -c "CREATE DATABASE \"default\";" -c "CREATE DATABASE test;"
|
||||
```
|
||||
Note: You might need to add `sudo -u postgres` to the command before `psql` to avoid permission errors.
|
||||
|
||||
**Option 2:** If you have docker installed:
|
||||
Running Docker on WSL adds an extra layer of complexity.
|
||||
Only use this option if you are comfortable with the extra steps involved, including turning on [Docker Desktop WSL2](https://docs.docker.com/desktop/wsl).
|
||||
```bash
|
||||
make postgres-on-docker
|
||||
```
|
||||
````
|
||||
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
Vous pouvez maintenant accéder à la base de données à [localhost:5432](localhost:5432), avec l'utilisateur `postgres` et le mot de passe `postgres`.
|
||||
|
||||
## Étape 4 : Configuration d'une base de données Redis (cache)
|
||||
|
||||
Twenty nécessite un cache Redis pour offrir la meilleure performance
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Linux">
|
||||
**Option 1 :** Pour configurer votre Redis localement :
|
||||
Utilisez le lien suivant pour installer Redis sur votre machine Linux : [Installation de Redis](https://redis.io/docs/latest/operate/oss_and_stack/install/install-redis/install-redis-on-linux/)
|
||||
|
||||
````
|
||||
**Option 2:** If you have docker installed:
|
||||
```bash
|
||||
make redis-on-docker
|
||||
```
|
||||
````
|
||||
|
||||
</Tab>
|
||||
<Tab title="Mac OS">
|
||||
**Option 1 (préférée) :** Pour configurer votre Redis localement avec `brew` :
|
||||
```bash
|
||||
brew install redis
|
||||
```
|
||||
Démarrez votre serveur redis :
|
||||
```brew services start redis```
|
||||
|
||||
````
|
||||
**Option 2:** If you have docker installed:
|
||||
```bash
|
||||
make redis-on-docker
|
||||
```
|
||||
````
|
||||
|
||||
</Tab>
|
||||
<Tab title="Windows (WSL)">
|
||||
**Option 1 :** Pour configurer votre Redis localement :
|
||||
Utilisez le lien suivant pour installer Redis sur votre machine virtuelle Linux : [Installation de Redis](https://redis.io/docs/latest/operate/oss_and_stack/install/install-redis/install-redis-on-linux/)
|
||||
|
||||
````
|
||||
**Option 2:** If you have docker installed:
|
||||
```bash
|
||||
make redis-on-docker
|
||||
```
|
||||
````
|
||||
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
Si vous avez besoin d'une interface graphique cliente, nous recommandons [redis insight](https://redis.io/insight/) (version gratuite disponible)
|
||||
|
||||
## Étape 5 : Configurer les variables d'environnement
|
||||
|
||||
Utilisez des variables d'environnement ou des fichiers `.env` pour configurer votre projet. Plus d'informations [ici](https://docs.twenty.com/developers/self-hosting/setup)
|
||||
|
||||
Copiez les fichiers `.env.example` dans `/front` et `/server` :
|
||||
|
||||
```bash
|
||||
cp ./packages/twenty-front/.env.example ./packages/twenty-front/.env
|
||||
cp ./packages/twenty-server/.env.example ./packages/twenty-server/.env
|
||||
```
|
||||
|
||||
## Étape 6 : Installation des dépendances
|
||||
|
||||
Pour construire le serveur Twenty et injecter des données dans votre base de données, exécutez la commande suivante :
|
||||
|
||||
```bash
|
||||
yarn
|
||||
```
|
||||
|
||||
Notez que `npm` ou `pnpm` ne fonctionneront pas
|
||||
|
||||
## Étape 7 : Exécution du projet
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Linux">
|
||||
Selon votre distribution Linux, le serveur Redis peut être démarré automatiquement.
|
||||
Sinon, vérifiez le [guide d'installation de Redis](https://redis.io/docs/latest/operate/oss_and_stack/install/install-redis/) pour votre distribution.
|
||||
</Tab>
|
||||
<Tab title="Mac OS">
|
||||
Redis devrait déjà être en cours d'exécution. Si ce n'est pas le cas, exécutez :
|
||||
```bash
|
||||
brew services start redis
|
||||
```
|
||||
</Tab>
|
||||
<Tab title="Windows (WSL)">
|
||||
Selon votre distribution Linux, le serveur Redis peut être démarré automatiquement.
|
||||
Sinon, vérifiez le [guide d'installation de Redis](https://redis.io/docs/latest/operate/oss_and_stack/install/install-redis/) pour votre distribution.
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
Configurez votre base de données avec la commande suivante :
|
||||
|
||||
```bash
|
||||
npx nx database:reset twenty-server
|
||||
```
|
||||
|
||||
Démarrez le serveur, le worker et les services frontend :
|
||||
|
||||
```bash
|
||||
npx nx start twenty-server
|
||||
npx nx worker twenty-server
|
||||
npx nx start twenty-front
|
||||
```
|
||||
|
||||
Alternativement, vous pouvez démarrer tous les services en même temps :
|
||||
|
||||
```bash
|
||||
npx nx start
|
||||
```
|
||||
|
||||
## Étape 8 : Utiliser Twenty
|
||||
|
||||
**Frontend**
|
||||
|
||||
Le frontend de Twenty sera en cours d'exécution à [http://localhost:3001](http://localhost:3001).
|
||||
Vous pouvez vous connecter en utilisant le compte démo par défaut : `tim@apple.dev` (mot de passe : `tim@apple.dev`)
|
||||
|
||||
**Backend**
|
||||
|
||||
- Le serveur de Twenty sera en fonctionnement à [http://localhost:3000](http://localhost:3000)
|
||||
- L'API GraphQL est accessible à [http://localhost:3000/graphql](http://localhost:3000/graphql)
|
||||
- L'API REST est joignable à [http://localhost:3000/rest](http://localhost:3000/rest)
|
||||
|
||||
## Résolution des problèmes
|
||||
|
||||
Si vous rencontrez un problème, consultez [Dépannage](https://docs.twenty.com/developers/self-hosting/troubleshooting) pour des solutions.
|
||||
@@ -0,0 +1,251 @@
|
||||
---
|
||||
title: Installation
|
||||
image: /images/user-guide/table-views/table.png
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/table-views/table.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
import OptionTable from '@site/src/theme/OptionTable'
|
||||
|
||||
# Gestion de la configuration
|
||||
|
||||
<Warning>
|
||||
**Première installation ?** Suivez le [Guide d'installation de Docker Compose](https://docs.twenty.com/developers/self-hosting/docker-compose) pour faire fonctionner Twenty, puis revenez ici pour la configuration.
|
||||
</Warning>
|
||||
|
||||
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)
|
||||
|
||||
```bash
|
||||
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)
|
||||
|
||||
<Warning>
|
||||
**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).
|
||||
</Warning>
|
||||
|
||||
**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...**
|
||||
|
||||

|
||||
|
||||
<Warning>
|
||||
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 d'application (`APP_SECRET`) ne peuvent être configurés que via le fichier `.env`.
|
||||
|
||||
[Référence technique complète →](https://github.com/twentyhq/twenty/blob/main/packages/twenty-server/src/engine/core-modules/twenty-config/config-variables.ts) </Warning>
|
||||
|
||||
## 2. Configuration réservée à l'environnement
|
||||
|
||||
```bash
|
||||
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
|
||||
|
||||
## Intégration Gmail & Google Agenda
|
||||
|
||||
### Créer un projet Google Cloud
|
||||
|
||||
1. Allez dans [Google Cloud Console](https://console.cloud.google.com/)
|
||||
2. Créez un nouveau projet ou sélectionnez-en un existant
|
||||
3. Activez ces API :
|
||||
|
||||
- [API Gmail](https://console.cloud.google.com/apis/library/gmail.googleapis.com)
|
||||
- [API Google Agenda](https://console.cloud.google.com/apis/library/calendar-json.googleapis.com)
|
||||
- [API People](https://console.cloud.google.com/apis/library/people.googleapis.com)
|
||||
|
||||
### Configurez OAuth
|
||||
|
||||
1. Allez dans [Identifiants](https://console.cloud.google.com/apis/credentials)
|
||||
2. Créez un identifiant client OAuth 2.0
|
||||
3. Ajoutez ces URI de redirection :
|
||||
- `https://<votre-domaine>/auth/google/redirect` (pour le SSO)
|
||||
- `https://<votre-domaine>/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://<votre-domaine>/auth/google/redirect`
|
||||
- `AUTH_GOOGLE_APIS_CALLBACK_URL=https://<votre-domaine>/auth/google-apis/get-access-token`
|
||||
|
||||
<Warning>
|
||||
**Mode réservé à l'environnement :** Si vous définissez `IS_CONFIG_VARIABLES_IN_DB_ENABLED=false`, ajoutez ces variables à votre fichier `.env` à la place.
|
||||
</Warning>
|
||||
|
||||
**Scopes requis** (configurés automatiquement) :
|
||||
[Voir le code source pertinent](https://github.com/twentyhq/twenty/blob/main/packages/twenty-server/src/engine/core-modules/auth/utils/get-google-apis-oauth-scopes.ts#L4-L10)
|
||||
|
||||
- `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](https://console.cloud.google.com/apis/credentials/consent), ajoutez vos utilisateurs test à la section "Utilisateurs test".
|
||||
|
||||
## Intégration Microsoft 365
|
||||
|
||||
<Warning>
|
||||
Les utilisateurs doivent avoir une [licence Microsoft 365](https://admin.microsoft.com/Adminportal/Home) pour pouvoir utiliser les API Calendrier et Messagerie. Ils ne pourront pas synchroniser leur compte sur Twenty sans cela.
|
||||
</Warning>
|
||||
|
||||
### Créez un projet dans Microsoft Azure
|
||||
|
||||
Vous devrez créer un projet dans [Microsoft Azure](https://portal.azure.com/#view/Microsoft_AAD_IAM/AppGalleryBladeV2) 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://<votre-domaine>/auth/microsoft/redirect` si vous souhaitez utiliser Microsoft SSO
|
||||
- `https://<votre-domaine>/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://<votre-domaine>/auth/microsoft/redirect`
|
||||
- `AUTH_MICROSOFT_APIS_CALLBACK_URL=https://<votre-domaine>/auth/microsoft-apis/get-access-token`
|
||||
|
||||
<Warning>
|
||||
**Mode réservé à l'environnement :** Si vous définissez `IS_CONFIG_VARIABLES_IN_DB_ENABLED=false`, ajoutez ces variables à votre fichier `.env` à la place.
|
||||
</Warning>
|
||||
|
||||
### Configurer les scopes
|
||||
|
||||
[Voir le code source pertinent](https://github.com/twentyhq/twenty/blob/main/packages/twenty-server/src/engine/core-modules/auth/utils/get-microsoft-apis-oauth-scopes.ts#L2-L9)
|
||||
|
||||
- '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 :
|
||||
|
||||
```bash
|
||||
# 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 :
|
||||
|
||||
<ArticleTabs label1="Gmail" label2="Office365" label3="Smtp4dev">
|
||||
|
||||
<ArticleTab>
|
||||
|
||||
Vous devrez créer un [mot de passe d'application](https://support.google.com/accounts/answer/185833).
|
||||
|
||||
- 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'
|
||||
|
||||
</ArticleTab>
|
||||
|
||||
<ArticleTab>
|
||||
|
||||
Gardez à l'esprit que si vous avez activé la validation en deux étapes (2FA), vous devrez mettre en place un [mot de passe d'application](https://support.microsoft.com/en-us/account-billing/manage-app-passwords-for-two-step-verification-d6dc8c6d-4bf7-4851-ad95-6d07799387e9).
|
||||
|
||||
- EMAIL_DRIVER=smtp
|
||||
- EMAIL_SMTP_HOST=smtp.office365.com
|
||||
- EMAIL_SMTP_PORT=587
|
||||
- EMAIL_SMTP_USER=office365_email_address
|
||||
- EMAIL_SMTP_PASSWORD='office365_password'
|
||||
|
||||
</ArticleTab>
|
||||
|
||||
<ArticleTab>
|
||||
|
||||
**smtp4dev** est un serveur SMTP factice pour le développement et les tests.
|
||||
|
||||
- Exécutez l'image smtp4dev : `docker run --rm -it -p 8090:80 -p 2525:25 rnwood/smtp4dev`
|
||||
- Accédez à l'interface utilisateur smtp4dev ici : [http://localhost:8090](http://localhost:8090)
|
||||
- Définissez les variables suivantes :
|
||||
- EMAIL_DRIVER=smtp
|
||||
- EMAIL_SMTP_HOST=localhost
|
||||
- EMAIL_SMTP_PORT=2525
|
||||
|
||||
</ArticleTab>
|
||||
|
||||
</ArticleTabs>
|
||||
|
||||
<Warning>
|
||||
**Mode réservé à l'environnement :** Si vous définissez `IS_CONFIG_VARIABLES_IN_DB_ENABLED=false`, ajoutez ces variables à votre fichier `.env` à la place.
|
||||
</Warning>
|
||||
@@ -0,0 +1,226 @@
|
||||
---
|
||||
title: Résolution des problèmes
|
||||
image: /images/user-guide/what-is-twenty/20.png
|
||||
---
|
||||
|
||||
<Frame>
|
||||
<img src="/images/user-guide/what-is-twenty/20.png" alt="Header" />
|
||||
</Frame>
|
||||
|
||||
## Résolution des problèmes
|
||||
|
||||
Si vous rencontrez un problème lors de la configuration de l'environnement pour le développement, la mise à niveau de votre instance ou l'auto-hébergement, voici quelques solutions pour les problèmes courants.
|
||||
|
||||
### Auto-hébergement
|
||||
|
||||
#### La première installation entraîne l'erreur `l'authentification du mot de passe a échoué pour l'utilisateur "postgres"`
|
||||
|
||||
🚨 **IMPORTANT : Cette solution est UNIQUEMENT pour les nouvelles installations** 🚨
|
||||
Si vous avez une instance Twenty existante avec des données de production, **NE SUIVEZ PAS** ces étapes, car elles supprimeront définitivement votre base de données !
|
||||
|
||||
Lors de l'installation de Twenty pour la première fois, vous pouvez vouloir changer le mot de passe par défaut de la base de données.
|
||||
Le mot de passe que vous définissez lors de la première installation est stocké de façon permanente dans le volume de la base de données. Si vous essayez ensuite de changer ce mot de passe dans votre configuration sans supprimer l'ancien volume, vous obtiendrez des erreurs d'authentification car la base de données utilise toujours le mot de passe original.
|
||||
|
||||
⚠️ AVERTISSEMENT : Les étapes suivantes SUPPRIMERONT DÉFINITIVEMENT toutes les données de la base de données ! ⚠️
|
||||
N'avancez que s'il s'agit d'une nouvelle installation sans données importantes.
|
||||
|
||||
Pour mettre à jour le `PG_DATABASE_PASSWORD`, vous devez :
|
||||
|
||||
```sh
|
||||
# Update the PG_DATABASE_PASSWORD in .env
|
||||
docker compose down --volumes
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
#### Retours à la ligne CR trouvés [Windows]
|
||||
|
||||
Cela est dû aux caractères de saut de ligne de Windows et à la configuration de git. Essayez de lancer :
|
||||
|
||||
```
|
||||
git config --global core.autocrlf false
|
||||
```
|
||||
|
||||
Ensuite, supprimez le dépôt et clonez-le de nouveau.
|
||||
|
||||
#### Schéma de métadonnées manquant
|
||||
|
||||
Pendant l'installation de Twenty, vous devez approvisionner votre base de données postgres avec les bons schémas, extensions et utilisateurs.
|
||||
Si vous réussissez cet approvisionnement, vous devriez avoir des schémas `default` et `metadata` dans votre base de données.
|
||||
Sinon, assurez-vous de ne pas avoir plus d'une instance postgres fonctionnant sur votre ordinateur.
|
||||
|
||||
#### Impossible de trouver le module 'twenty-emails' ou les déclarations de type correspondantes.
|
||||
|
||||
Vous devez construire le package `twenty-emails` avant de lancer l'initialisation de la base de données avec `npx nx run twenty-emails:build`
|
||||
|
||||
#### Package twenty-x manquant
|
||||
|
||||
Assurez-vous d'exécuter yarn dans le répertoire racine, puis d'exécuter `npx nx server:dev twenty-server`. Si cela ne fonctionne toujours pas, essayez de construire le package manquant manuellement.
|
||||
|
||||
#### Lint à l'enregistrement ne fonctionne pas
|
||||
|
||||
Cela devrait fonctionner directement avec l'extension eslint installée. Si cela ne fonctionne pas, essayez d'ajouter ceci aux paramètres de votre vscode (dans le champ du conteneur de développement) :
|
||||
|
||||
```
|
||||
"editor.codeActionsOnSave": {
|
||||
|
||||
"source.fixAll.eslint": "explicit"
|
||||
|
||||
}
|
||||
```
|
||||
|
||||
#### Pendant l'exécution de `npx nx start` ou `npx nx start twenty-front`, une erreur de mémoire est renvoyée
|
||||
|
||||
Dans `packages/twenty-front/.env`, décommentez `VITE_DISABLE_TYPESCRIPT_CHECKER=true` et `VITE_DISABLE_ESLINT_CHECKER=true` pour désactiver les vérifications en arrière-plan, réduisant ainsi la quantité de RAM nécessaire.
|
||||
|
||||
**Si cela ne fonctionne pas :**
|
||||
Lancez uniquement les services dont vous avez besoin, au lieu de `npx nx start`. Par exemple, si vous travaillez sur le serveur, lancez seulement `npx nx worker twenty-server`
|
||||
|
||||
**Si cela ne fonctionne pas :**
|
||||
Si vous avez essayé de lancer uniquement `npx nx run twenty-server:start` sur WSL et que cela échoue avec l'erreur de mémoire ci-dessous :
|
||||
|
||||
`ERREUR FATALE : Les compactages inefficaces près de la limite du tas Allocation échouée - tas JavaScript sans mémoire`
|
||||
|
||||
Une solution de contournement consiste à exécuter la commande ci-dessous dans le terminal ou à l'ajouter au profil .bashrc pour la configurer automatiquement :
|
||||
|
||||
`export NODE_OPTIONS="--max-old-space-size=8192"`
|
||||
|
||||
L'option --max-old-space-size=8192 fixe une limite supérieure de 8 Go pour le tas Node.js ; l'utilisation s'adapte à la demande de l'application.
|
||||
Référence : https://stackoverflow.com/questions/56982005/where-do-i-set-node-options-max-old-space-size-2048
|
||||
|
||||
**Si cela ne fonctionne pas :**
|
||||
Enquêter sur les processus qui consomment le plus de RAM sur votre machine. Chez Twenty, nous avons remarqué que certaines extensions de VScode consommaient beaucoup de RAM, nous les désactivons donc temporairement.
|
||||
|
||||
**Si cela ne fonctionne pas :**
|
||||
Redémarrer votre machine aide à nettoyer les processus fantômes.
|
||||
|
||||
#### Pendant l'exécution de `npx nx start`, il y a des [0] et [1] étranges dans les journaux
|
||||
|
||||
C'est attendu car la commande `npx nx start` exécute plus de commandes en arrière-plan
|
||||
|
||||
#### Aucun e-mail n'est envoyé
|
||||
|
||||
La plupart du temps, c'est parce que le `worker` ne fonctionne pas en arrière-plan. Essayez de lancer
|
||||
|
||||
```
|
||||
npx nx worker twenty-server
|
||||
```
|
||||
|
||||
#### Impossible de connecter mon compte Microsoft 365
|
||||
|
||||
La plupart du temps, c'est parce que votre administrateur n'a pas activé la licence Microsoft 365 pour votre compte. Vérifiez [https://admin.microsoft.com/](https://admin.microsoft.com/Adminportal/Home).
|
||||
|
||||
Si vous avez un code d'erreur `AADSTS50020`, cela signifie probablement que vous utilisez un compte personnel Microsoft. Cela n'est pas encore pris en charge. Plus d'informations [ici](https://learn.microsoft.com/fr-fr/troubleshoot/entra/entra-id/app-integration/error-code-aadsts50020-user-account-identity-provider-does-not-exist)
|
||||
|
||||
#### Des avertissements apparaissent dans la console pendant l'exécution de `yarn`
|
||||
|
||||
Les avertissements informent du tirage de dépendances supplémentaires qui ne sont pas explicitement spécifiées dans `package.json`, donc tant qu'aucune erreur bloquante n'apparaît, tout devrait fonctionner comme prévu.
|
||||
|
||||
#### Lorsque l'utilisateur accède à la page de connexion, une erreur concernant des utilisateurs non autorisés essayant d'accéder à l'espace de travail apparaît dans les journaux
|
||||
|
||||
C'est attendu car l'utilisateur est non autorisé lorsqu'il est déconnecté puisque son identité n'est pas vérifiée.
|
||||
|
||||
#### Comment vérifier si votre worker fonctionne ?
|
||||
|
||||
- Allez sur [webhook-test.com](https://webhook-test.com/) et copiez **Votre URL Webhook Unique**.
|
||||
|
||||
<div style={{textAlign: 'center'}}>
|
||||
<img src="/images/docs/developers/self-hosting/webhook-test.jpg" alt="Webhook test" />
|
||||
</div>
|
||||
- Ouvrez votre application Twenty, naviguez jusqu'à `/settings`, et activez le bouton **Avancé** en bas à gauche de l'écran.
|
||||
- Créez un nouveau webhook.
|
||||
- Collez **Votre URL Webhook Unique** dans le champ **URL de l'Endpoint** de Twenty. Réglez les **Filtres** sur `Sociétés` et `Créé`.
|
||||
<div style={{textAlign: 'center'}}>
|
||||
<img src="/images/docs/developers/self-hosting/webhook-settings.jpg" alt="Webhook settings" />
|
||||
</div>
|
||||
- Accédez à `/objects/companies` et créez un nouvel enregistrement de société.
|
||||
- Retournez sur [webhook-test.com](https://webhook-test.com/) et vérifiez si une nouvelle **requête POST** a été reçue.
|
||||
<div style={{textAlign: 'center'}}>
|
||||
<img src="/images/docs/developers/self-hosting/webhook-test-result.jpg" alt="Webhook test result" />
|
||||
</div>
|
||||
- Si une **requête POST** est reçue, votre worker fonctionne avec succès. Sinon, vous devez résoudre les problèmes de votre worker.
|
||||
|
||||
#### Le front-end échoue à démarrer et renvoie l'erreur TS5042 : L'option 'project' ne peut pas être mélangée avec les fichiers sources en ligne de commande
|
||||
|
||||
Commentez le plugin de vérification dans `packages/twenty-ui/vite-config.ts` comme dans l'exemple ci-dessous
|
||||
|
||||
```
|
||||
plugins: [
|
||||
react({ jsxImportSource: '@emotion/react' }),
|
||||
tsconfigPaths(),
|
||||
svgr(),
|
||||
dts(dtsConfig),
|
||||
// checker(checkersConfig),
|
||||
wyw({
|
||||
include: [
|
||||
'**/OverflowingTextWithTooltip.tsx',
|
||||
'**/Chip.tsx',
|
||||
'**/Tag.tsx',
|
||||
'**/Avatar.tsx',
|
||||
'**/AvatarChip.tsx',
|
||||
],
|
||||
babelOptions: {
|
||||
presets: ['@babel/preset-typescript', '@babel/preset-react'],
|
||||
},
|
||||
}),
|
||||
],
|
||||
```
|
||||
|
||||
#### Panneau d'administration inaccessible
|
||||
|
||||
Exécutez `UPDATE core."user" SET "canAccessFullAdminPanel" = TRUE WHERE email = 'vous@votredomaine.com';` dans le conteneur de base de données pour obtenir l'accès au panneau d'administration.
|
||||
|
||||
### Docker compose en un clic
|
||||
|
||||
#### Impossible de se connecter
|
||||
|
||||
Si vous ne pouvez pas vous connecter après la configuration :
|
||||
|
||||
1. Exécutez les commandes suivantes :
|
||||
```bash
|
||||
docker exec -it twenty-server-1 yarn
|
||||
docker exec -it twenty-server-1 npx nx database:reset --configuration=no-seed
|
||||
```
|
||||
2. Redémarrez les conteneurs Docker :
|
||||
```bash
|
||||
docker compose down
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
Notez que la commande database:reset effacera complètement votre base de données et la recréera à partir de zéro.
|
||||
|
||||
#### Problèmes de connexion derrière un proxy inverse
|
||||
|
||||
Si vous exécutez Twenty derrière un proxy inverse et rencontrez des problèmes de connexion :
|
||||
|
||||
1. **Vérifiez SERVER_URL :**
|
||||
|
||||
Assurez-vous que `SERVER_URL` dans votre fichier `.env` correspond à l'URL d'accès externe, incluant `https` si SSL est activé.
|
||||
|
||||
2. **Vérifiez les paramètres du proxy inverse :**
|
||||
|
||||
- Confirmez que votre proxy inverse transfère correctement les requêtes au serveur Twenty.
|
||||
- Assurez-vous que les en-têtes comme `X-Forwarded-For` et `X-Forwarded-Proto` sont correctement configurés.
|
||||
|
||||
3. **Redémarrez les services :**
|
||||
|
||||
Après avoir apporté des modifications, redémarrez à la fois le proxy inverse et les conteneurs Twenty.
|
||||
|
||||
#### Erreur lors du téléchargement d'une image - permission refusée
|
||||
|
||||
Changer la propriété du dossier de données sur l'hôte de root à un autre utilisateur et groupe résout ce problème.
|
||||
|
||||
## Obtenir de l'aide
|
||||
|
||||
Si vous rencontrez des problèmes non couverts par ce guide :
|
||||
|
||||
- Vérifiez les journaux :
|
||||
|
||||
Consultez les journaux de conteneur pour les messages d'erreur :
|
||||
|
||||
```bash
|
||||
docker compose logs
|
||||
```
|
||||
|
||||
- Support communautaire :
|
||||
|
||||
Contactez la [communauté Twenty](https://github.com/twentyhq/twenty/issues) ou les [canaux de support](https://discord.gg/cx5n4Jzs57) pour obtenir de l'aide.
|
||||
Reference in New Issue
Block a user