# Installation

## Prérequis

Afin de procéder à l'installation d'**Open-Capture**, il est recommandé d'utiliser la distribution Debian. Cependant, il reste possible d'utiliser les distributions Ubuntu et Ubuntu Server mais le support au niveau des bugs ne sera pas possible. De plus, les versions des paquets peuvent différer entre les distributions.

Vous trouverez ci-dessous un tableau des versions **Python** & **Tesseract** ainsi que des distributions testées et recommandées pour l'installation d'**Open-Capture**.

| Python | Tesseract | Système d'exploitation |
| ------ | --------- | ---------------------- |
| >= 3.9 | >= 5.2.0  | Debian >= 12           |

Pour la partie utilisation client, il est recommandé d'utiliser le navigateur Firefox. Chrome et Edge fonctionnent malgré tout, mais toutes les fonctionnalités ne sont pas garanties.

<table><thead><tr><th width="133"></th><th width="202">Minimum</th><th width="209">Recommandé</th><th>Recommande (IA)</th></tr></thead><tbody><tr><td>Processeur</td><td>4 vCPU</td><td>4 vCPU</td><td>8 vCPU</td></tr><tr><td>Mémoire vive</td><td>8Go (+4Go de SWAP) </td><td>12Go (+6Go de SWAP)</td><td>16Go (+8Go de SWAP)</td></tr><tr><td>Stockage</td><td>60 Go</td><td>60 Go</td><td>80 Go</td></tr></tbody></table>

Il est nécessaire que votre machine aie certains accès obligatoires, que ce soit pour l'installation de d'Open-Capture ou pour son utilisation. Dans un premier temps, il est impératif que votre machine puisse contacter internet et notamment les URLs suivantes :&#x20;

> <https://github.com/\\>
> <https://pypi.python.org\\>
> <https://pytorch.org\\>
> <https://pypi.org\\>
> <https://pythonhosted.org\\>
> <http://deb.debian.org\\>
> <http://security.debian.org>

Les ports de votre machine doivent également être ouvert pour permettre l'accès à votre instance via Apache. Les ports **`80`** et **`443`** doivent être accessibles.

## Clonage du dépôt git

C'est parti pour l'installation. Il n'y a rien de plus simple, vous n'avez qu'à taper les commandes suivantes. Ces dernières permettront :

* La création du dossier **Open-Capture**
* La mise en place des bons droits sur ce dossier
* La vérification que les dépôts APT soient à jour
* L'installation de Git
* La récupération du dernier tag

```bash
sudo mkdir -p /var/www/html/opencapture/
sudo chmod -R 775 /var/www/html/opencapture/
sudo chown -R $(whoami):$(whoami) /var/www/html/opencapture/
sudo apt update
sudo apt install -y git crudini
latest_tag=$(git ls-remote --tags --sort="v:refname" https://github.com/edissyum/opencapture.git | tail -n1 |  sed 's/.*\///; s/\^{}//' | grep -E '3.+([0-9])$')
git clone -b $latest_tag https://github.com/edissyum/opencapture/ /var/www/html/opencapture/
cd /var/www/html/opencapture/install/
```

## Lancement de l'installateur

Vous êtes désormais prêt à installer tout le nécessaire pour faire fonctionner **Open-Capture**. Rien de bien compliqué, il vous suffira de quelques commandes seulement. Durant l'installation, vous aurez le choix entre l'utilisation de [**systemd**](https://doc.ubuntu-fr.org/systemd) ou de [**supervisor**](https://doc.ubuntu-fr.org/systemd).

Par défaut, c'est **systemd** qui sera choisi, offrant un traitement des factures une par une. De son côté, **supervisor** permettra de lancer en simultané X instances d'**Open-Capture**. Attention, si vous choisissez **supervisor**, la configuration de la machine devra suivre au niveau des performances.

Le paramètre \`-c\` permet de spécifier le nom du custom (où seront stockés vos différents paramètres). Par défaut, nous le mettons à "**edissyum".** Si vous souhaitez le changer, modifier le libellé dans la commande ci-dessous (éviter les espaces, accents et autres caractères spéciaux). À noter que si vous souhaitez installer Open-Capture sur un serveur accessible depuis l'extérieur, le custom peut prendre le nom de votre nom de domaine. (Exemple d'une commande pour l'instance <https://demo.open-capture.com/> : `sudo ./install.sh -c demo.open-capture.com`)

{% hint style="warning" %}
Merci de ne pas lancer l'installateur avec l'utilisateur `root`. Il faut créer un utilisateur spécifique si aucun n'est déjà présent et lancer l'installateur en `sudo`.
{% endhint %}

{% hint style="danger" %}
Si votre custom contient des `.` ou des `-`, l'application remplacera ces caractères par des `_`. Ne vous inquiétez pas, l'utilisation du nom du custom dans l'URL restera avec les caractères d'origines.
{% endhint %}

```bash
sudo ./install.sh --custom_id edissyum
```

Si vous le souhaitez, il est possible de spécifier certains paramètres en argument de l'installateur. La liste est disponible ci-dessous :&#x20;

{% code fullWidth="false" %}

```bash
--user : Forcer un utilisateur en particulier (facultatif)
--custom_id : Identifiant du custom (obligatoire)
--supervisor_systemd : Utilisation de supervisor ou systemd (facultatif)
--supervisor_process : Nombre de processessus supervisor (facultatif)
--path : Chemin contenant le code Open-Capture (facultatif)
--docserver_path : Chemin des docservers (stockage des documents) (facultatif)
--share_path : Chemin de partage (contenant les dossiers imports / exports) (facultatif)
--python_venv_path : Chemin du venv Python (facultatif)
--wsgi_threads : Nombre de threads WSGI (facultatif)
--wsgi_process : Nombre de process WSGI (facultatif)
--database_name : Nom de la base de données (facultatif)
--database_hostname : Hôte de la base de données (facultatif)
--database_port : Port de la base de données (facultatif)
--database_username : Utilisateur de la base de données (facultatif)
--database_password : Mot de passe de l'utilisateur de base de données (facultatif)
```

{% endcode %}

Ci-dessous un exemple complet avec les différentes options remplies.

{% hint style="warning" %}
Veillez à bien vérifier que les paramètres correspondent bien à votre installation. Notamment au niveau de l'utilisateur bash (`--user`), de l'utilisateur postgresql (`--username` et `--password`) et des différents chemins (`--docserver_path`, `--path` ou encore `--python-venv-path`)
{% endhint %}

{% code overflow="wrap" %}

```bash
sudo ./install.sh \
 --user edissyum \
 --custom_id edissyum \
 --path /var/www/html/opencapture/ \
 --share_path /var/share/ \
 --docserver_path /var/docservers/opencapture/ \
 --python_venv_path /home/edissyum/python-venv/opencapture/ \
 --wsgi_process 1 \
 --wsgi_threads 5 \
 --supervisor_systemd systemd \
 --database_hostname localhost \
 --database_port 5432 \
 --database_username edissyum \
 --database_password edissyum
```

{% endcode %}

Vous pouvez suivre l'avancée de l'installation, et les éventuelles erreurs, avec les deux commandes suivantes&#x20;

```bash
tail -f /var/www/html/opencapture/install/install_info.log
tail -f /var/www/html/opencapture/install/install_error.log
```

Si jamais vous souhaitez utiliser une langue d'OCR différente du français ou de l'anglais, il vous sera possible de télécharger les paquets supplémentaires de Tesseract. Pour cela, il vous suffit d'aller [**sur le site suivant**](https://www.macports.org/ports.php?by=name\&substr=tesseract-) et de récupérer le code de langue situé après le `-`. Lancez ensuite la commande suivante :

```bash
sudo apt install tesseract-ocr-<langcode>
```

## Accès à votre installation

Sur une installation classique comme ici, vous pourrez directement accéder à votre instance via l'adresse IP de votre serveur (ou nom de domaine).

> Exemple : <http://192.168.10.10/edissyum/dist/>

Un compte administrateur est déjà présent dans le jeu de données par défaut. Il est impératif de mettre à jour le mot de passe de ce dernier afin de sécuriser votre instance.

> Nom d'utilisateur : admin
>
> Mot de passe : admin

{% hint style="info" %}
Notez bien la présence d'un nom de l'instance `edissyum` dans l'URL, ceci est indispensable.
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://edissyum.gitbook.io/open-capture/technique/installation.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
