Retour à la topologie
DOCUMENTATION TECHNIQUE

Vaultwarden

vaultwarden.md

Vaultwarden

Ce que fait ce service

Implémentation open-source compatible avec l'API Bitwarden. Permet de stocker, synchroniser et accéder à des mots de passe depuis n'importe quel client Bitwarden officiel (extension navigateur, app mobile, app desktop). Les données (coffre, pièces jointes, sends) sont stockées localement dans une base SQLite sur la VM. Le service est exposé via Nginx Proxy Manager sous le domaine vw.fatonfaton.fr.

Où il est installé

  • Données : /data/compose/vw-data/ (monté dans /data du container)
  • Base de données : /data/compose/vw-data/db.sqlite3
  • Clé RSA : /data/compose/vw-data/rsa_key.pem
  • Pièces jointes : /data/compose/vw-data/attachments/
  • Image Docker : vaultwarden/server:latest
  • Géré via : Portainer (stack 4)
  • Créé : il y a 15 mois — le plus ancien container de la VM
  • Démarré : il y a 6 semaines (healthy)
  • Configuration actuelle

    Variables d'environnement du container (non-sensibles) :
    DOMAIN=https://vw.fatonfaton.fr
    ROCKET_PROFILE=release
    ROCKET_ADDRESS=0.0.0.0
    ROCKET_PORT=80
    YUBICO_CLIENT_ID=102457
    Le container tourne avec le profile release de Rocket (framework web Rust). L'authentification YubiKey est configurée (YUBICO_CLIENT_ID=102457). Contenu du répertoire de données :
    /data/compose/vw-data/
    ├── attachments/
    ├── db.sqlite3         # base de données principale
    ├── db.sqlite3-shm
    ├── db.sqlite3-wal
    ├── icon_cache/
    ├── rsa_key.pem        # clé RSA pour le chiffrement JWT
    ├── sends/
    └── tmp/

    Ports et réseau

    Port hôtePort containerUsage
    ---------
    1023280HTTP interne (proxifié par NPM)
  • Accessible depuis : Internet via Nginx Proxy Manager
  • URL publique : https://vw.fatonfaton.fr
  • Le container écoute en HTTP — le TLS est terminé par NPM
  • Variables d'environnement

    VariableValeur
    ------
    DOMAINhttps://vw.fatonfaton.fr
    ROCKET_PROFILErelease
    ROCKET_ADDRESS0.0.0.0
    ROCKET_PORT80
    YUBICO_CLIENT_ID102457
    YUBICO_SECRET_KEY*** (probablement présent mais non visible)

    Dépendances

  • Dépend de : Nginx Proxy Manager (pour le TLS et l'exposition publique)
  • Est utilisé par : clients Bitwarden (extensions navigateur, apps mobiles)
  • Commandes

    Voir le statut

    docker ps --filter name=vaultwarden

    Voir les logs

    docker logs vaultwarden --tail 50

    Démarrer

    docker start vaultwarden

    Arrêter

    docker stop vaultwarden

    Redémarrer

    docker restart vaultwarden

    Sauvegarder la base de données

    sqlite3 /data/compose/vw-data/db.sqlite3 ".backup /tmp/vaultwarden_backup_$(date +%Y%m%d).sqlite3"

    Logs — Dernière activité

    Les logs docker ne répondent pas dans un délai normal (driver de logs lent). Le healthcheck Docker indique healthy — le service tourne correctement.

    Points d'attention

  • • C'est le container le plus ancien (15 mois). L'image vaultwarden/server:latest a pu évoluer significativement depuis la création — vérifier les changelogs avant de docker pull.
  • • La base SQLite est le seul emplacement de toutes les données du coffre. Sauvegarder /data/compose/vw-data/ régulièrement. Aucun backup automatique n'a été détecté sur la VM.
  • • Le rsa_key.pem est critique — sa perte invalide tous les tokens JWT actifs et déconnecte tous les clients.
  • • L'authentification YubiKey est configurée (YUBICO_CLIENT_ID), ce qui suggère une 2FA hardware active.
  • • Le service écoute sur le port non-standard 10232 — ne pas oublier de mettre à jour la règle NPM si ce port change.