← Tous les manuels · Portail

MANUAL — vaultwarden

Manuel d'instructions de cette app. À LIRE avant toute intervention, et à METTRE À JOUR après chaque modification (ajouter une ligne au CHANGELOG en bas).
Créé le 2026-08-05.

1. Identité

  • - Rôle : gestionnaire de mots de passe d'équipe pour MOA (self-hosted, open source, compatible Bitwarden). Coffre-fort chiffré, partage de mots de passe entre employés via Organisations/Collections, remplissage auto via les apps/extensions Bitwarden officielles.
  • - URL publique : https://passwords.panelbay.com
  • - Entité : MOA (usage transverse équipe, ~20 employés)
  • - Pourquoi Vaultwarden et pas une app maison : un gestionnaire de mots de passe est la cible n°1 en sécurité ; on ne code JAMAIS le sien. Vaultwarden est audité, éprouvé, et débloque gratuitement les fonctions "équipe" que Bitwarden fait payer.
  • 2. Exécution / infra

  • - Conteneur Docker : vaultwarden (image vaultwarden/server:latest, --restart unless-stopped).
  • - Port local : 8362 (bind 127.0.0.1:8362 -> conteneur :80).
  • - Reverse proxy (nginx) : /etc/nginx/sites-enabled/passwords.panelbay.com.conf (HTTPS Let's Encrypt + headers WebSocket Upgrade/Connection pour les notifications de synchro).
  • - DNS : passwords.panelbay.com via Cloudflare (DNS-only, non proxied).
  • - Redémarrer : docker restart vaultwarden
  • - Recréer (après changement d'env) : docker stop vaultwarden && docker container rm vaultwarden, puis relancer le docker run (voir CHANGELOG 2026-08-05) — le volume data est conservé.
  • 3. Données & secrets

  • - Données persistées : /root/workspace/apps/vaultwarden/data (volume monté sur /data du conteneur) — contient la base SQLite chiffrée, les pièces jointes, la clé RSA. C'est le dossier à sauvegarder.
  • - Secrets : /root/workspace/apps/vaultwarden/.env (chmod 600) — VW_PORT, VW_DOMAIN, VW_ADMIN_TOKEN (panneau admin), VW_SIGNUPS_WHITELIST (vide), VW_SIGNUPS_ALLOWED=false. Ne jamais committer ni exposer.
  • - Zero-knowledge : le mot de passe maître de chaque utilisateur n'est JAMAIS stocké ni connu de l'AIOS. Si un utilisateur perd son mot de passe maître, son coffre est irrécupérable (par design). L'admin peut seulement supprimer/réinviter le compte, pas lire son contenu.
  • 4. Configuration active

  • - SIGNUPS_ALLOWED=false (auto-inscription publique fermée) + pas de SIGNUPS_DOMAINS_WHITELIST (vide) : plus personne ne peut créer un compte tout seul. L'ajout de membres se fait UNIQUEMENT par invitation. Pour rouvrir l'auto-inscription un jour, remettre SIGNUPS_ALLOWED=true (et éventuellement un whitelist de domaines) et recréer le conteneur.
  • - INVITATIONS_ALLOWED=true : un propriétaire d'Organisation peut inviter des membres.
  • - Panneau admin : https://passwords.panelbay.com/admin (token = VW_ADMIN_TOKEN dans .env). Sert à voir/supprimer les utilisateurs, gérer les orgs, configurer SMTP.
  • 5. Pièges connus / à savoir

  • - SMTP non configuré : les emails d'invitation ne partent pas encore. Tant que SMTP n'est pas branché, l'onboarding équipe se fait par auto-inscription (email du domaine whitelisté) + le propriétaire d'org confirme les membres depuis l'admin, OU on câble SMTP (via le Gmail MOA) pour que les invitations d'org fonctionnent en un clic. Prochaine étape recommandée si partage à 20 personnes.
  • - Changer une variable d'env Docker impose de recréer le conteneur (pas juste restart) : le volume data conserve tout.
  • - Le guardrail hook de l'AIOS erre parfois sur docker rm -f : utiliser docker stop puis docker container rm en deux commandes.
  • - WebSocket : si la synchro temps réel casse, vérifier que le vhost nginx garde bien les headers Upgrade/Connection.
  • 6. Sauvegarde

  • - Sauvegarder /root/workspace/apps/vaultwarden/data (coffre chiffré) régulièrement. Une simple copie du dossier (conteneur arrêté ou à chaud, SQLite tolère) suffit à restaurer.
  • CHANGELOG

  • - 2026-08-05 — Déploiement initial. docker run image vaultwarden/server:latest sur 127.0.0.1:8362, volume data/, --restart unless-stopped. Exposé en HTTPS via expose-webapp (Cloudflare DNS + Let's Encrypt) sur https://passwords.panelbay.com (WebSocket OK). Inscription restreinte aux domaines MOA (SIGNUPS_DOMAINS_WHITELIST). ADMIN_TOKEN généré, stocké dans .env (chmod 600). Reste à faire : (1) Matt crée son compte propriétaire, (2) créer l'Organisation MOA + Collections de partage, (3) option SMTP via Gmail MOA pour invitations d'org fluides. Commande de run complète :
  • ```

    docker run -d --name vaultwarden --restart unless-stopped \

    -v /root/workspace/apps/vaultwarden/data:/data \

    -p 127.0.0.1:8362:80 \

    -e DOMAIN=https://passwords.panelbay.com \

    -e SIGNUPS_ALLOWED=true \

    -e SIGNUPS_DOMAINS_WHITELIST=moa-realestate.com,moarealestate.com,moa.fr \

    -e INVITATIONS_ALLOWED=true \

    -e ADMIN_TOKEN=<VW_ADMIN_TOKEN du .env> \

    vaultwarden/server:latest

    ```

  • - 2026-08-08 — Fermeture de l'auto-inscription. À la demande de Matt (inviter n'importe quel Gmail sans les cantonner aux domaines MOA) : SIGNUPS_DOMAINS_WHITELIST retiré (vide) ET SIGNUPS_ALLOWED passé à false. Motif : vider seulement le whitelist en laissant SIGNUPS_ALLOWED=true aurait ouvert l'inscription publique à tout Internet sur un gestionnaire de mots de passe. Résultat : plus d'auto-inscription, ajout de membres par invitation uniquement (INVITATIONS_ALLOWED=true inchangé), sans restriction de domaine. .env mis à jour (VW_SIGNUPS_WHITELIST= vide, VW_SIGNUPS_ALLOWED=false), conteneur recréé (volume data conservé), /alive → HTTP 200. Rappel : les invitations d'org nécessitent SMTP pour partir par email (toujours pas branché) ; sinon le lien d'invitation se relaie manuellement.