> ## Documentation Index
> Fetch the complete documentation index at: https://ayakaleaf-pro.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Synchronisation Dropbox

<Info>
  Cette fonctionnalité est développée par [ayaka-notes/ayakaleaf-pro](https://github.com/ayaka-notes/ayakaleaf-pro). Elle est disponible à partir de la v6.4.0. Elle est encore en version bêta : vos retours nous sont précieux si vous rencontrez un problème.
</Info>

La synchronisation Dropbox maintient les projets d'un utilisateur synchronisés avec sa Dropbox, comme sur Overleaf Cloud : dès qu'un utilisateur lie son compte Dropbox, chacun de ses projets apparaît sous forme de dossier dans `Apps/<your Dropbox app>/`, les modifications effectuées dans Overleaf sont envoyées vers Dropbox, et celles effectuées dans Dropbox reviennent dans Overleaf.

### Configurer la synchronisation Dropbox

<Warning>
  Vous devez d'abord activer [git-bridge](/fr/on-premises/configuration/overleaf-toolkit/git-integration) : sans lui, les paramètres du compte masquent la section de synchronisation des projets.

  ```dotenv title="config/overleaf.rc" theme={null}
  GIT_BRIDGE_ENABLED=true
  ```
</Warning>

Créez une application dans la [Dropbox App Console](https://www.dropbox.com/developers/apps), en étant connecté avec le compte Dropbox qui sera propriétaire de l'application :

1. Cliquez sur **Create app**, puis remplissez la page :
   * **1. Choose an API** : sélectionnez **Scoped access**.
   * **2. Choose the type of access you need** : sélectionnez **App folder**, et non **Full Dropbox**. Overleaf ne synchronise qu'à l'intérieur du dossier de l'application.
   * **3. Name your app** : saisissez un nom, par exemple `Overleaf`. Il doit être unique sur Dropbox. Les projets de chaque utilisateur apparaissent dans `Apps/<name of your app>/` dans sa Dropbox, et ce nom correspond à `DROPBOX_APP_NAME` ci-dessous.
   * Cliquez sur **Create app**. L'application s'ouvre sur son onglet **Settings**.
2. Dans l'onglet **Permissions**, sous **Files and folders**, cochez `files.metadata.write`, `files.content.write` et `files.content.read`. `account_info.read` et `files.metadata.read` sont cochés en même temps et ne peuvent pas être décochés. Ne cochez aucune autre autorisation.
3. Cliquez sur **Submit** dans la barre en bas de l'onglet **Permissions**. **Sans Submit, les autorisations ne sont pas enregistrées**, et Dropbox refuse de synchroniser les fichiers des utilisateurs qui lient leur compte.

<Frame caption="Dropbox App Console : les autorisations à cocher, enregistrées avec Submit">
  <img src="https://mintcdn.com/ayakaleaf-pro/34P8O6kHo91beEvQ/images/on-premises/dropbox-app-permissions.png?fit=max&auto=format&n=34P8O6kHo91beEvQ&q=85&s=8e99711b1fcf03d3d1655f65fea3a6b8" alt="" width="2302" height="1444" data-path="images/on-premises/dropbox-app-permissions.png" />
</Frame>

4. Dans l'onglet **Settings**, sous **OAuth 2**, saisissez `${OVERLEAF_SITE_URL}/user/dropbox/oauth/callback` dans **Redirect URIs**, puis **cliquez sur Add**. Saisir l'URI ne suffit pas : elle n'est enregistrée qu'une fois affichée dans la liste au-dessus du champ.

<Frame caption="Dropbox App Console : saisissez l'URI de redirection, puis cliquez sur Add">
  <img src="https://mintcdn.com/ayakaleaf-pro/34P8O6kHo91beEvQ/images/on-premises/dropbox-app-redirect-uri.png?fit=max&auto=format&n=34P8O6kHo91beEvQ&q=85&s=d980dc4dec22a90b5bf1f7e147cfc7c0" alt="" width="2788" height="1450" data-path="images/on-premises/dropbox-app-redirect-uri.png" />
</Frame>

5. Dans l'onglet **Settings**, sous **Webhooks**, saisissez `${OVERLEAF_SITE_URL}/dropbox/webhook` dans **Webhook URIs**, puis **cliquez également sur Add**. Dropbox l'appelle immédiatement pour la vérifier : Overleaf doit donc déjà fonctionner avec les paramètres ci-dessous et être accessible depuis Internet (voir [Webhook](#webhook)). Son statut affiche **Enabled** une fois la vérification réussie.

Copiez l'**App key** et l'**App secret** (cliquez sur **Show**) depuis l'onglet **Settings**, puis ajoutez les paramètres suivants à vos fichiers de variables d'environnement Overleaf. Vous pouvez ajouter le webhook (étape 5) une fois qu'Overleaf fonctionne avec ces paramètres.

```dotenv title="config/variables.env" wrap theme={null}
# used to encrypt the user's Dropbox refresh token.
# How to generate: `openssl rand -hex 32`
DROPBOX_TOKEN_CIPHER_PASSWORD=0123456789ABCDEFG # changed to yours

# Dropbox Sync Settings
DROPBOX_ENABLED=true
DROPBOX_APP_KEY=
DROPBOX_APP_SECRET=
# the name of your Dropbox app (step 1), which is the folder name in Apps/
DROPBOX_APP_NAME=Overleaf

# OAuth callback is: ${OVERLEAF_SITE_URL}/user/dropbox/oauth/callback
# Webhook is: ${OVERLEAF_SITE_URL}/dropbox/webhook
# (Optional) DROPBOX_SYNC_PROXY_URL=http://10.0.0.1:10808
```

<Warning>
  * Avant de configurer l'URI de redirection et le webhook, assurez-vous que `OVERLEAF_SITE_URL` est correctement défini.
  * Dropbox fige les autorisations d'un jeton au moment où l'utilisateur lie son compte : soumettre des autorisations ne modifie pas les jetons existants. Les utilisateurs qui ont lié leur compte avant que les autorisations soient soumises, ou avant que vous les modifiiez, doivent délier puis lier à nouveau leur compte Dropbox.
  * Une nouvelle application a le statut **Development**. Si **Development users** dans l'onglet **Settings** affiche **Only you**, seul votre compte Dropbox peut être lié : cliquez sur **Enable additional users** pour permettre aux autres utilisateurs de lier le leur. Le nombre d'utilisateurs liés s'affiche alors, par exemple `1 / 500` : **une application en Development accepte au maximum 500 utilisateurs**. Pour davantage d'utilisateurs, cliquez sur **Apply for production**, et Dropbox examinera l'application.
</Warning>

Si vous vous trouvez dans une région où l'accès au réseau est restreint, vous devrez peut-être configurer un proxy pour accéder à Dropbox. Définissez la variable d'environnement suivante : `DROPBOX_SYNC_PROXY_URL=http://10.0.0.1:10808`. Il doit s'agir d'un proxy de transfert HTTP/HTTPS standard, qui ne doit pas utiliser `127.0.0.1`.

### Webhook

Dropbox informe Overleaf des modifications effectuées dans Dropbox au moyen d'un webhook, afin qu'elles apparaissent dans Overleaf en quelques secondes. Le webhook pointe vers l'adresse de votre site, `${OVERLEAF_SITE_URL}/dropbox/webhook`, et ne nécessite aucun port supplémentaire, mais **Dropbox doit pouvoir y accéder depuis Internet**. Lorsque vous l'ajoutez dans l'App Console, Dropbox le vérifie immédiatement.

Sans webhook, par exemple sur un serveur que Dropbox ne peut pas joindre, les modifications effectuées dans Overleaf sont toujours envoyées vers Dropbox, mais celles effectuées dans Dropbox ne reviennent que lorsqu'un utilisateur clique sur *sync this project now* dans la boîte de dialogue Dropbox de l'éditeur.

### Fonctionnement de la synchronisation

* **Liaison** : lorsqu'un utilisateur lie son compte Dropbox, les projets dont il est propriétaire sont envoyés vers Dropbox. Les projets partagés avec lui apparaissent dans Dropbox lors de leur prochaine modification.
* **D'Overleaf vers Dropbox** : les nouveaux fichiers, les renommages, les déplacements, les suppressions et les renommages de projets sont envoyés immédiatement. Les modifications faites dans l'éditeur sont envoyées une fois qu'Overleaf les a enregistrées dans son stockage, quelques minutes après que tout le monde a quitté le projet. Pour les envoyer plus tôt, cliquez sur *sync this project now* dans la boîte de dialogue Dropbox de l'éditeur (une fois par minute).
* **De Dropbox vers Overleaf** : les fichiers nouveaux et modifiés, les nouveaux dossiers et les suppressions dans un dossier de projet sont appliqués au projet. Un nouveau dossier à la racine du dossier de l'application devient un nouveau projet. Supprimer un dossier de projet dans Dropbox marque le projet comme supprimé dans Overleaf.
* **Conflits** : lorsqu'un fichier est modifié aux deux endroits en même temps, la dernière modification l'emporte. Dropbox peut conserver l'autre version sous forme de *conflicted copy*.
* **Collaborateurs** : les collaborateurs qui lient leur Dropbox reçoivent les projets partagés avec eux. Les utilisateurs en lecture seule et les relecteurs reçoivent le projet, mais leurs modifications dans Dropbox ne sont pas synchronisées vers Overleaf.
* **Fichiers ignorés** : les fichiers qu'Overleaf ne synchronise pas, comme les fichiers de compilation (`.aux`, `.log`, …), `.DS_Store` ou les environnements virtuels Python, restent uniquement dans Dropbox.

### Q\&A

<Accordion title="Pourquoi un utilisateur ne peut-il pas lier son compte Dropbox ?">
  <strong>Réponse :</strong>

  * Les projets sont associés aux dossiers Dropbox par leur nom : un utilisateur qui possède deux projets portant le même nom est donc invité à renommer l'un d'eux au préalable.
  * Un compte Dropbox ne peut être lié qu'à un seul compte Overleaf.
</Accordion>

<Accordion title="Pourquoi un compte Dropbox a-t-il été délié ?">
  <strong>Réponse :</strong> Overleaf délie un compte Dropbox lorsque Dropbox refuse son jeton (par exemple après que l'utilisateur a supprimé l'application dans Dropbox), lorsque la Dropbox est pleine, ou lorsque Dropbox a suspendu le compte. L'utilisateur peut le lier à nouveau une fois le problème résolu.
</Accordion>

<Accordion title="Puis-je renommer un dossier de projet dans Dropbox ?">
  <strong>Réponse :</strong> Veuillez plutôt renommer le projet dans Overleaf. Pour Overleaf, renommer le dossier dans Dropbox revient à supprimer le dossier du projet et à en créer un nouveau : l'ancien projet est donc marqué comme supprimé et un nouveau projet est créé à partir des fichiers.
</Accordion>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.