Mots de passe · sans KYC
Hébergez Vaultwarden sur un VPS offshore
Faites tourner votre propre coffre-fort de mots de passe compatible Bitwarden, sur du matériel que vous contrôlez, dans une juridiction respectueuse de la vie privée, payé en crypto sans identité associée.
Ce que c'est
Vaultwarden est un serveur Bitwarden léger et non officiel, écrit en Rust, qui parle la même API que Bitwarden : tous les clients Bitwarden officiels (extensions navigateur, application de bureau, iOS/Android, CLI) se synchronisent donc avec lui. Il stocke des coffres-forts chiffrés pour les mots de passe, passkeys, graines TOTP, cartes bancaires et notes sécurisées, avec organisations, pièces jointes et contrôles d'administration, tout en utilisant une fraction de la RAM de la stack Bitwarden officielle.
Pourquoi l'héberger en offshore
Votre coffre-fort de mots de passe est l'actif le plus sensible que vous possédiez, si bien que l'identité de l'hébergeur et la loi qui s'applique comptent autant que le chiffrement lui-même. Un VPS sans KYC, payé en crypto, situé dans une juridiction respectueuse de la vie privée (NL/CH/RO/IS) signifie que la machine qui stocke vos coffres-forts chiffrés n'est pas liée à votre identité légale, n'est pas soumise à une citation à comparaître américaine ou britannique, et ne peut pas être bloquée par un prestataire de paiement qui vous déplateformerait.
Le déploiement
Une configuration de référence fonctionnelle
Copiez ceci sur une nouvelle instance ChainVPS. Remplacez les paramètres, puis lancez-la.
# 1) DNS: point vault.example.com -> your ChainVPS IP (A/AAAA record)
# 2) Generate an Argon2 ADMIN_TOKEN (do NOT use a plain string):
# docker run --rm -it vaultwarden/server /vaultwarden hash
# paste the resulting '$argon2id$...' string as ADMIN_TOKEN below (single-quote it in .env)
# 3) Save as docker-compose.yml, create the Caddyfile shown, then: docker compose up -d
services:
vaultwarden:
image: vaultwarden/server:1.32.7
container_name: vaultwarden
restart: unless-stopped
environment:
DOMAIN: "https://vault.example.com" # must match the public URL exactly
SIGNUPS_ALLOWED: "false" # create your account, then keep this false
INVITATIONS_ALLOWED: "true"
ADMIN_TOKEN: "${ADMIN_TOKEN}" # Argon2 hash from step 2, kept in .env
WEBSOCKET_ENABLED: "true" # live sync (served on the main port)
SENDS_ALLOWED: "true"
ROCKET_PORT: "80"
volumes:
- ./vw-data:/data # vaults, attachments, sqlite db, keys
networks: [vw]
# no host port published: only Caddy talks to it over the internal network
caddy:
image: caddy:2
container_name: vaultwarden-caddy
restart: unless-stopped
ports:
- "80:80"
- "443:443"
- "443:443/udp" # HTTP/3
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile:ro
- ./caddy-data:/data
- ./caddy-config:/config
networks: [vw]
depends_on: [vaultwarden]
networks:
vw:
# ---- Caddyfile (same directory) ----
# vault.example.com {
# encode gzip
# reverse_proxy vaultwarden:80
# }
# Caddy fetches and renews a Let's Encrypt cert automatically; HTTPS is mandatory
# because Bitwarden clients use WebCrypto, which only runs on a secure origin.
Pare-feu
Ports à ouvrir
| Port | Protocole | Objectif |
|---|---|---|
| 443 | TCP | Coffre-fort HTTPS + synchronisation client + WebSocket (via Caddy) ; le seul port qui doit être public |
| 80 | TCP | Redirection HTTP -> HTTPS et émission de certificat ACME/Let's Encrypt |
| 443 | UDP | HTTP/3 (QUIC) optionnel pour une synchronisation client plus rapide |
Dimensionnement optimal
De quel forfait vous avez besoin
VPS Nano/Small (1 vCPU, 1-2 GB RAM)
Vaultwarden tourne au ralenti autour de 15-30 Mo de RAM avec SQLite ; un Nano est largement suffisant. Le stockage est minime, sauf si vous conservez de grosses pièces jointes.
VPS Pro (2 vCPU, 4 GB RAM)
Marge suffisante pour les synchronisations simultanées, les pièces jointes, et pour faire tourner Caddy ainsi que fail2ban/les sauvegardes sur la même machine.
VPS Pro (palier supérieur) ou Dedicated d'entrée de gamme
Passez de SQLite à Postgres/MySQL et placez les pièces jointes sur un plan Storage ou un disque plus grand ; un CPU dédié maintient une latence de synchronisation stable sous charge.
Meilleurs emplacements : Choisissez un emplacement ChainVPS dédié à la confidentialité pour votre coffre-fort : la Suisse (CH) et l'Islande (IS) ont de fortes traditions de protection des données et de respect de la vie privée, les Pays-Bas (NL) offrent une excellente connectivité sous le droit européen de la vie privée, et la Roumanie (RO) ou la Moldavie (MD) se situent en dehors des blocs de partage du renseignement les plus stricts. Choisissez celui géographiquement le plus proche de l'endroit où vous et vos utilisateurs synchronisez, afin de minimiser la latence, puisque le coffre-fort est de toute façon chiffré côté client.
Verrouillez-le
Liste de vérification du durcissement
- Gardez SIGNUPS_ALLOWED=false après avoir créé votre compte et utilisez les INVITATIONS pour ajouter des utilisateurs ; un endpoint d'inscription ouvert sur un coffre-fort public est un aimant à abus.
- Définissez toujours ADMIN_TOKEN avec un hash Argon2 généré via 'vaultwarden hash' (jamais une chaîne en clair), ou désactivez entièrement le panneau /admin en laissant ADMIN_TOKEN non défini une fois la configuration terminée. Envisagez de restreindre l'accès à /admin à votre IP via un pare-feu.
- Imposez HTTPS uniquement et laissez Caddy gérer les certificats Let's Encrypt ; les clients Bitwarden refusent d'exécuter le chiffrement sur du HTTP en clair, et un certificat valide empêche toute dégradation/MITM sur la synchronisation.
- Sauvegardez régulièrement le répertoire ./vw-data (en particulier rsa_key.pem, config.json, db.sqlite3 et les pièces jointes) vers un emplacement hors machine, comme un plan Storage ChainVPS ; la perte de rsa_key.pem invalide toutes les sessions/jetons existants.
- Faites tourner fail2ban sur le journal de Vaultwarden (LOG_FILE + LOG_LEVEL) pour bannir les tentatives de connexion par force brute, et exigez que chaque utilisateur active la 2FA ; n'exposez que les ports 80/443 via ufw/nftables et bloquez tout le reste.
Questions
Hébergement Vaultwarden — FAQ
Vaultwarden est-il la même chose que Bitwarden ?
C'est une implémentation serveur distincte et légère de l'API Bitwarden. Elle n'est pas développée par Bitwarden Inc., mais les applications et extensions Bitwarden officielles fonctionnent avec elle, et elle prend en charge les coffres-forts, les organisations, les pièces jointes, les Sends et les passkeys. Elle est idéale pour les particuliers et les petites équipes qui veulent s'auto-héberger sans l'empreinte en ressources de la stack serveur officielle.
Mes données sont-elles en sécurité si le serveur est saisi ou si l'hébergeur est compromis ?
Les coffres-forts sont chiffrés et déchiffrés côté client avec une clé dérivée de votre mot de passe maître, si bien que le serveur ne stocke jamais que du texte chiffré. Héberger sur une machine sans KYC dans une juridiction respectueuse de la vie privée réduit le nombre d'acteurs pouvant contraindre l'accès, mais vous devez tout de même utiliser un mot de passe maître fort, activer la 2FA, et garder DOMAIN en HTTPS pour protéger le flux de connexion lui-même.
Ai-je besoin de HTTPS, ou puis-je utiliser une simple IP ?
Vous avez besoin de HTTPS avec un certificat valide et un nom de domaine. Les clients Bitwarden utilisent l'API WebCrypto du navigateur, qui ne fonctionne que sur une origine sécurisée : une configuration en http:// simple ou en IP nue empêchera donc la synchronisation. Le service Caddy inclus émet et renouvelle automatiquement un certificat Let's Encrypt gratuit.
SQLite ou MySQL/Postgres ?
SQLite (par défaut) convient parfaitement et est le plus rapide pour un usage personnel et les petites équipes allant jusqu'à quelques dizaines d'utilisateurs. Ne passez à MySQL ou PostgreSQL que pour les déploiements multi-organisations de grande taille, ou lorsque vous souhaitez des sauvegardes de base de données centralisées et de la réplication ; définissez DATABASE_URL en conséquence.
Comment ajouter des utilisateurs sans ouvrir les inscriptions publiques ?
Gardez SIGNUPS_ALLOWED=false et INVITATIONS_ALLOWED=true, puis invitez des utilisateurs depuis une organisation (ou via le panneau /admin). Les utilisateurs invités reçoivent une invitation et peuvent s'inscrire même si l'inscription publique est fermée, ce qui évite que l'endpoint ne soit détourné.
Puis-je payer le VPS sans fournir de pièce d'identité ?
Oui. ChainVPS fonctionne sans KYC et accepte les cryptomonnaies, de sorte que le serveur hébergeant vos coffres-forts chiffrés n'est lié ni à votre identité légale ni à un prestataire de carte bancaire susceptible de geler le compte.
Plus à auto-héberger
Autres stacks en un clic
Déployer Vaultwarden
dans les 60 prochaines secondes.
Bande passante illimitée · DDoS inclus · 21 cryptomonnaies · sans KYC.