> ## Documentation Index
> Fetch the complete documentation index at: https://docs.abbyy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Configuration

FineParser se configure une seule fois, au démarrage du container, à l'aide de variables d'environnement et d'indicateurs en ligne de commande. Chaque paramètre existe sous ces deux formes, et l'indicateur prévaut lorsque les deux sont fournis. Les paramètres restent valables pendant toute la durée de vie du process.

<h2 id="settings">
  Paramètres
</h2>

| Paramètre                                          | Indicateur                | Variable d'environnement  | Valeur par défaut                                                                                                                                                                         |
| -------------------------------------------------- | ------------------------- | ------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| License                                            | `-license-data`           | `FINEPARSER_LICENSE_DATA` | Obligatoire. Le contenu de votre fichier `.fineparserlicense`. Voir [Licences et offres](/fr/fine-parser/basics/licenses-and-plans).                                                      |
| Recognition mode                                   | `-mode`                   | `FRE_MODE`                | `accurate`. Voir [Modes de reconnaissance](/fr/fine-parser/basics/recognition-modes).                                                                                                     |
| Langues                                            | `-language`               | `FRE_LANGUAGE`            | `English`. Voir [Langues](/fr/fine-parser/basics/languages).                                                                                                                              |
| Adresse d'écoute                                   | `-addr`                   | `LISTEN_ADDR`             | `:8080`                                                                                                                                                                                   |
| Répertoire de sortie                               | `-output-dir`             | `OUTPUT_DIR`              | `/app/output`. Emplacement où sont écrits les résultats et la base de données des tâches. Montez-y un volume.                                                                             |
| Répertoire temporaire                              | `-scratch-dir`            | `SCRATCH_DIR`             | `/app/scratch`. Emplacement où les fichiers téléversés attendent la reconnaissance. Ne nécessite pas de volume.                                                                           |
| Base de données des tâches                         | `-db`                     | `JOB_DB`                  | `<output-dir>/jobs.db`                                                                                                                                                                    |
| Suppression au téléchargement                      | `-delete-on-download`     | `DELETE_ON_DOWNLOAD`      | `false`. Avec la valeur `true`, un résultat et l'enregistrement de sa tâche sont supprimés dès que le résultat a été intégralement téléchargé.                                            |
| Limite de téléversement                            | `-max-upload-bytes`       | `MAX_UPLOAD_BYTES`        | `1Gi`. Taille maximale acceptée pour le corps de requête. Accepte les suffixes `Ki`, `Mi`, `Gi`, `Ti` ou `K`, `M`, `G`, `T`. `0` signifie illimité.                                       |
| Délai d'expiration du téléversement                | `-upload-timeout`         | `UPLOAD_TIMEOUT`          | `5m`. Durée dont dispose une soumission pour transmettre son corps. `0` signifie illimité.                                                                                                |
| Délai d'expiration en cas de téléchargement bloqué | `-download-stall-timeout` | `DOWNLOAD_STALL_TIMEOUT`  | `5m`. Durée pendant laquelle un téléchargement peut rester sans progression avant d'être interrompu. Un transfert lent mais qui progresse n'est jamais interrompu. `0` signifie illimité. |

La licence est un texte multiligne. Transmettez-la avec `$(cat acme.fineparserlicense)` ou depuis un Secret Kubernetes. Les fichiers `.env` de Docker ne peuvent pas contenir de valeurs multilignes : ils ne conviennent donc pas pour cette variable.

La télémétrie dispose de ses propres variables d'environnement permettant d'inspecter le flux ou d'en envoyer une copie à votre propre collecteur. Voir [Inspecter et copier le flux](/fr/fine-parser/reference/data-privacy#inspecting-and-copying-the-stream).

<h2 id="one-configuration-per-container">
  Une configuration par container
</h2>

Les paramètres de reconnaissance ne peuvent pas être modifiés requête par requête. Chaque document reçu par un container est traité avec le mode et les langues définis à son démarrage.

Si différents jeux de documents nécessitent des paramètres différents, exécutez un container par configuration et acheminez chaque requête vers le container correspondant. Un proxy inverse ou le code de votre propre application peut prendre cette décision à partir des informations dont vous disposez déjà sur le document, comme sa source ou son type de fichier.

<h2 id="storage">
  Stockage
</h2>

Les résultats sont écrits dans le répertoire de sortie sous la forme `{jobId}/{name}`, aux côtés d'une petite base de données des tâches qui assure le suivi de chaque tâche. L'image déclare `/app/output` comme volume. Montez-y un volume nommé ou un répertoire de l'hôte : sans cela, Docker crée un volume anonyme et les résultats sont perdus à la suppression du conteneur.

```bash theme={null}
docker run -d --name fineparser -p 8080:8080 --stop-timeout 60 \
  -e FINEPARSER_LICENSE_DATA="$(cat acme.fineparserlicense)" \
  -v fineparser-output:/app/output \
  abbyyteam/fineparser
```

Le conteneur s'exécute en tant qu'utilisateur non-root ; un répertoire hôte monté sur `/app/output` doit donc lui être accessible en écriture.

Un seul conteneur par répertoire de sortie. La base de données des tâches est verrouillée tant qu'elle est ouverte : un second conteneur pointant vers le même volume refusera de démarrer. Si vous exécutez plusieurs conteneurs, attribuez à chacun son propre volume.

Les fichiers téléversés ne restent dans le répertoire temporaire que le temps d'attendre la reconnaissance, et sont supprimés dès que celle-ci est terminée. Rien dans le répertoire temporaire ne survit à une tâche : il n'a donc pas besoin de volume.

<h2 id="running-on-arm">
  Exécution sur ARM
</h2>

L'image FineParser n'est actuellement compilée que pour `linux/amd64`. Sur un hôte ARM, tel qu'un Mac à puce Apple (série M), Docker doit l'exécuter en mode de compatibilité. Ajoutez l'option `--platform linux/amd64` à `docker run` :

```bash theme={null}
docker run -d --name fineparser -p 8080:8080 --stop-timeout 60 \
  --platform linux/amd64 \
  -e FINEPARSER_LICENSE_DATA="$(cat acme.fineparserlicense)" \
  -v fineparser-output:/app/output \
  abbyyteam/fineparser
```

Sans cette option, Docker refuse de démarrer le conteneur ou affiche un avertissement d'incompatibilité de plateforme, selon la version.

L'émulation est plus lente qu'une exécution native. La reconnaissance prendra donc plus de temps par page que sur un hôte x86-64 : considérez cette configuration comme un environnement de développement et non comme une référence de performance. Une build ARM native de l'image est en cours de préparation et rendra cette option inutile.

<h2 id="stopping-the-container">
  Arrêt du container
</h2>

Attribuez au container un délai d'arrêt de 60 secondes. Lors d'un arrêt propre, FineParser laisse les requêtes en cours se terminer, vide la télémétrie, puis s'arrête. La valeur par défaut de Docker, 10 secondes, ne lui en laisse pas le temps. Utilisez `--stop-timeout 60` avec `docker run`, ou `terminationGracePeriodSeconds: 60` dans Kubernetes. Consultez [Redémarrages et arrêt](/fr/fine-parser/concepts/rest-api#restarts-and-shutdown) pour savoir ce qu'il advient des tâches alors en file d'attente ou en cours d'exécution.

<h2 id="networking">
  Réseau
</h2>

FineParser écoute sur le port 8080 à l'intérieur du container. Publiez ce port sur votre hôte avec `-p HOST:CONTAINER` afin de pouvoir lui envoyer des requêtes. `-p 8080:8080` rend l'API accessible sur le port 8080 de l'hôte depuis n'importe quelle machine du réseau, tandis que `-p 127.0.0.1:9000:8080` la limite à localhost sur le port 9000. Pour la syntaxe complète, consultez [Published ports](https://docs.docker.com/engine/network/#published-ports) dans la documentation Docker.

<Warning>
  Le container doit pouvoir joindre le license server d'ABBYY. Sans cette connexion sortante, FineParser n'analyse aucun document. Autorisez les plages d'adresses indiquées à la section [Prérequis réseau](/fr/fine-parser/reference/data-privacy#network-requirements) dans votre pare-feu ou votre proxy sortant. Pour les environnements dépourvus de connectivité sortante, consultez [FineParser Enterprise](/fr/fine-parser/reference/enterprise).
</Warning>

<h2 id="confirming-the-license">
  Vérification de la License
</h2>

En mode serveur, appelez `/healthz`. Un container disposant d'une License renvoie `ready: true` :

```bash theme={null}
curl -s localhost:8080/healthz
# {"code":"ok","ready":true,"telemetry":true}
```

En mode CLI, recherchez la ligne `metering ready for instance …` dans la sortie du container, avant le nombre de pages.

Sans License, aucun des deux modes ne fonctionne. Le Server se déclare en mauvaise santé et ne traite rien :

```json theme={null}
{"code":"no_instance","detail":"...no licence supplied; set FINEPARSER_LICENSE_DATA or pass -license-data","ready":false,"telemetry":true}
```
