Skip to main content

Installation

image.png

Fichier docker-compose

Dans cette procédure, nous allons utiliser Docker. Une documentation préalable à ce sujet est disponible ici.
Commençons par créer un fichier docker-compose.yaml, adapté à nos besoins :

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

    cap_add:                          # Ajoute uniquement les capacités strictement nécessaires au fonctionnement
      - AUDIT_WRITE
      - CHOWN
      - DAC_OVERRIDE
      - FOWNER
      - FSETID
      - KILL
      - MKNOD
      - NET_BIND_SERVICE
      - NET_RAW
      - SETFCAP
      - SETGID
      - SETPCAP
      - SETUID
      - SYS_CHROOT

    cap_drop:                         # Supprime les capacités sensibles non nécessaires, pour renforcer la sécurité du conteneur
      - AUDIT_CONTROL
      - BLOCK_SUSPEND
      - DAC_READ_SEARCH
      - IPC_LOCK
      - IPC_OWNER
      - LEASE
      - LINUX_IMMUTABLE
      - MAC_ADMIN
      - MAC_OVERRIDE
      - NET_ADMIN
      - NET_BROADCAST
      - SYSLOG
      - SYS_ADMIN
      - SYS_BOOT
      - SYS_MODULE
      - SYS_NICE
      - SYS_PACCT
      - SYS_PTRACE
      - SYS_RAWIO
      - SYS_RESOURCE
      - SYS_TIME
      - SYS_TTY_CONFIG
      - WAKE_ALARM

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

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 :

docker compose up -d