# Guide d'installation pour contributeurs

## Prérequis

Pour garantir le bon fonctionnement de Hexabot, vous aurez besoin des éléments suivants :

* **Docker :** Nous recommandons d'utiliser Docker pour démarrer l'application car plusieurs services sont requis (MongoDB, Redis, Prometheus, etc.). Tous les fichiers Docker Compose nécessaires se trouvent dans le dossier docker.
* **Node.js :** Pour le développement, assurez-vous d'avoir Node.js >= v18.17.0 installé. Nous recommandons d'utiliser nvm (Node Version Manager) pour gérer et mettre à jour facilement vos versions de Node.js.

### Installation

1. **Cloner le dépôt :**

```bash
$ git clone https://github.com/hexastack/hexabot.git
```

2. **Installation :**

Installer Hexabot CLI et les dépendances node :

```bash
$ npm i -g hexabot-cli
$ cd hexabot/
$ npm i
```

3. **Configuration de l'environnement :**&#x20;

Pour configurer les variables d'environnement, utilisez le Makefile à la racine pour l'initialisation :

```bash
$ hexabot init
```

Ceci va copier le `.env.example` fichier vers `.env` dans le `./docker` répertoire si le fichier n'existe pas déjà.

4. **Exécution de l'application en mode développement :** Une fois votre environnement configuré, vous pouvez démarrer l'application. Utilisez la commande suivante :

```bash
$ hexabot dev
```

**Remarque :**&#x20;

* La première fois que vous lancez l'application, Docker mettra un certain temps à construire toutes les images Docker requises et à mettre en cache les couches.
* Le "**--services**" vous permet d'ajouter des services supplémentaires séparés par des virgules. Pour chaque service, il doit y avoir un fichier Docker compose sous le "**docker/**" répertoire. Par exemple, si vous faites "**--services nginx**" vous devrez avoir un fichier docker compose pour ce service "**docker/docker-compose.nginx.yml**"

### Utilisation

Le panneau d'administration UI est accessible via <http://localhost:8080>, les identifiants par défaut sont :

* **Nom d'utilisateur :** <admin@admin.admin>
* **Mot de passe :** adminadmin

Le widget de chat en direct est accessible via <http://localhost:5173>
