# Installation

[![image.png](https://docs.rakouns.bzh/uploads/images/gallery/2025-10/scaled-1680-/Sirimage-png.png)](https://docs.rakouns.bzh/uploads/images/gallery/2025-10/scaled-1680-/Sirimage-png.png)

### Fichier docker-compose

Dans cette procédure, nous allons utiliser **Docker**. Une documentation préalable à ce sujet est disponible [ici](https://docs.rakouns.bzh/books/docker).  
Commençons par créer un fichier `docker-compose.yaml`, adapté à nos besoins :

```bash
services:
  vaultwarden:
    image: vaultwarden/server:latest  # Utilise l'image officielle Vaultwarden, en dernière version disponible
    container_name: vaultwarden       # Nomme explicitement le conteneur pour faciliter son identification
    restart: always                   # Redémarre automatiquement le conteneur en cas de crash ou redémarrage de l'hôte

    ports:
      - "82:80"                       # Expose l'interface HTTP sur le port 82 de la machine (interne 80)
      - "4443:443"                   # Expose l'interface HTTPS sur le port 4443 de la machine (interne 443)

    volumes:
      - /vw-data:/data               # Monte le dossier /data du conteneur (où sont stockées les données) dans /vw-data de l'hôte

    environment:
      - ROCKET_PROFILE=release       # Active le mode production pour de meilleures performances
      - ROCKET_ADDRESS=0.0.0.0       # Écoute sur toutes les interfaces réseau disponibles
      - ROCKET_PORT=80               # Définit le port HTTP interne à 80
      - DEBIAN_FRONTEND=noninteractive  # Supprime les interactions lors des mises à jour système (bonne pratique en conteneur)
      - ADMIN_TOKEN=<clé>            # Jeton d'administration haché permettant l'accès à l'interface d'administration Vaultwarden

    command: ["/start.sh"]            # Démarre le script de lancement officiel du conteneur

    healthcheck:
      test: ["CMD", "/healthcheck.sh"]  # Vérifie la santé du conteneur via un script toutes les 60 secondes
      interval: 60s
      timeout: 10s

```

Pour obtenir la clé "ADMIN\_TOKEN", c'est très simple, on génère une clé SSL :

```bash
openssl rand -base64 48
```

cela renvoi un résultat similaire à cela :

```
mjLUlEhDYJr1kxJqGWkkc1qUCpqV3aektjfbGFSNbZwuE+2+GDhvyLZhnAfEdhW9
```

## Démarrage

Une fois le fichier `docker-compose.yaml` créé, nous pouvons **lancer VaultWarden** avec la commande suivante :

```bash
docker compose up -d
```