# Exemple de déploiement multi-noeuds avec Docker-Compose

Le répertoire [`misc/docker-compose`](./) contient un exemple de déploiement de Bouncer multi-noeuds avec:

- 3 instances du service `bouncer-proxy`;
- 1 instance du service `haproxy` en frontal en charge du load-balancing;
- 1 instance du service `bouncer-admin`;
- 1 serveur Redis.

## Prérequis

- [Docker Compose](https://docs.docker.com/compose/)

## Étapes

1. Se positionner dans le répertoire puis lancer l'environnement avec la commande `docker compose`:

   ```bash
   cd misc/docker-compose
   docker compose up
   ```

2. Entrer dans le conteneur `bouncer-admin` puis créer un jeton d'accès:

   ```bash
   docker compose exec bouncer-admin /bin/sh
   bouncer auth create-token --role writer > .bouncer-token
   ```

3. Créer un proxy via le CLI:

   ```bash
   bouncer admin proxy create --proxy-name myproxy --proxy-to "https://www.cadoles.com/"
   bouncer admin proxy update --proxy-name myproxy --proxy-enabled=true
   ```

4. Via votre navigateur, accéder à l'URL http://127.0.0.1:8080. La page du site Cadoles devrait s'afficher. Dans le log de la commande `docker-compose up` vous devriez voir que les requêtes sont routées à tour de rôle sur les 3 instances de Bouncer en exécution.

5. Stopper l'environnement:

   ```
   docker compose down -v
   ```