vaultwarden-selfhostINFO

Vaultwarden Self-Host: Tutorial completo 2026 (Docker, Raspberry Pi, TLS)

Tutorial Vaultwarden self-host 2026: Docker Compose su Raspberry Pi 4, proxy nginx, TLS Let's Encrypt, backup automatici, compatibilità al 100% con i client Bitwarden ufficiali. Massima privacy.

Di Eric Gerard · Editor · PwdFortress4 min di letturaPhoto: Markus Spiske - Unsplash

📌 Il self-hosting NON è per tutti: prima di iniziare, sii onesto - te la senti di gestire reverse proxy, certificati TLS, backup cifrati e aggiornamenti Docker mensili? Se la risposta è «non proprio», una cassaforte gestita come NordPass a 1,49 €/mese ti costerà meno di un guasto del Raspberry Pi mentre sei in vacanza. Se sì, questo tutorial fa per te.

Nuovo all'idea? Inizia dalla nostra panoramica sui password manager self-hosted.

Vaultwarden è la riscrittura open source in Rust del server Bitwarden, progettata per girare su hardware modesto (un Raspberry Pi 4 basta). Questo tutorial illustra un deployment di livello produzione con Docker Compose, proxy Caddy con HTTPS automatico e backup cifrati su Backblaze B2.

Vaultwarden fa girare la tua cassaforte Bitwarden sul tuo hardware. Compatibile al 100% con i client ufficiali. Configurazione in 30 minuti se conosci Docker.

01 - Prerequisiti

  • Un server Linux (Raspberry Pi 4, VPS o homelab) con Docker installato
  • Un nome di dominio che punta all'IP pubblico del server (es. vault.yourdomain.com)
  • Porta 443 aperta su firewall / NAT
  • 30 minuti
  • ~50 MB di spazio per Vaultwarden + i tuoi dati futuri

02 - Architettura target

Internet → Cloudflare (opzionale) → reverse proxy Caddy con Let's Encrypt automatico → container Vaultwarden. Dati memorizzati sull'host in /srv/vaultwarden/data.

Caddy gestisce l'HTTPS automaticamente via Let's Encrypt. Vaultwarden gira in un container Docker isolato.

03 - Docker Compose

Crea il file /srv/vaultwarden/docker-compose.yml. La configurazione usa l'immagine ufficiale vaultwarden/server:latest, espone la variabile DOMAIN che punta al tuo URL HTTPS, disabilita le registrazioni esterne con SIGNUPS_ALLOWED: false, abilita i WebSocket per la sincronizzazione in tempo reale e monta un volume ./data per la persistenza.

La configurazione di Caddy è minima: una singola direttiva reverse_proxy vaultwarden:80 più gli header di sicurezza standard (HSTS, X-Frame-Options, X-Content-Type-Options, Referrer-Policy).

L'ADMIN_TOKEN si genera con openssl rand -base64 48 (da mettere solo nella tua configurazione locale, mai committato).

04 - Avviare Vaultwarden

Avvia il servizio con docker compose up -d dalla cartella /srv/vaultwarden, poi controlla i log con docker compose logs -f vaultwarden. Caddy ottiene automaticamente un certificato Let's Encrypt entro 30 secondi (visibile in docker compose logs caddy).

05 - Primo accesso + hardening

Una schermata di login con un campo password
Una schermata di login con un campo password

  1. Apri https://vault.yourdomain.com nel browser
  2. Crea il tuo account (l'unico consentito: registrazioni chiuse dopo)
  3. IMMEDIATAMENTE: Settings → Security → Two-step Login → abilita TOTP
  4. IMMEDIATAMENTE: verifica che SIGNUPS_ALLOWED sia false
  5. Testa l'autofill con il browser puntato al tuo URL personalizzato

06 - Backup automatici

Uno script bash orario crea uno snapshot del database SQLite (consistente senza fermare il servizio), comprime l'intera cartella, cifra lato client con GPG (destinatario = la tua email) e carica su Backblaze B2 (~1 €/mese per 100 GB).

La sequenza:

  1. docker exec vaultwarden sqlite3 /data/db.sqlite3 ".backup '/tmp/db_DATE.sqlite3'" per uno snapshot consistente
  2. tar czf per archiviare
  3. gpg --encrypt --recipient you@email.com per la cifratura lato client
  4. b2 upload-file per l'upload remoto
  5. Pulizia locale

Crontab: 0 * * * * /usr/local/bin/vaultwarden-backup.sh

Test mensile: ripristina un backup su un'istanza di dev per verificarne l'integrità.

07 - Connettere i client Bitwarden ufficiali

In ogni client Bitwarden (mobile, desktop, browser), prima del login:

  1. Clicca sull'ingranaggio delle impostazioni (prima del login)
  2. URL del server: https://vault.yourdomain.com
  3. Salva
  4. Accedi con la tua master password

Tutti i client funzionano esattamente come con il cloud Bitwarden ufficiale.

08 - Manutenzione

  • Aggiornamenti Vaultwarden: docker compose pull && docker compose up -d (consigliato mensilmente)
  • Monitoraggio: Uptime Kuma (self-hosted) o Healthchecks.io (gratuito) per gli avvisi di downtime
  • Log: docker compose logs --tail 200 vaultwarden
  • Audit: segui github.com/dani-garcia/vaultwarden per eventuali CVE

09 - Per approfondire


Tutorial basato su Vaultwarden 1.31.x su Raspberry Pi 4 (Debian 12) a giugno 2026. Procedure validate rispetto alla documentazione ufficiale di Vaultwarden.

Domande frequenti

Vaultwarden è davvero compatibile con i client Bitwarden ufficiali?

**Sì, al 100%**. Vaultwarden (ex bitwarden_rs) è una riscrittura in Rust del server Bitwarden che implementa l'API ufficiale. I client Bitwarden (web, desktop, mobile, browser, CLI) si connettono al tuo server Vaultwarden semplicemente puntando al tuo URL personalizzato. Nessuna perdita di funzionalità lato client. L'unico caso in cui Vaultwarden resta leggermente indietro: alcune funzionalità Enterprise molto recenti possono avere 1-2 mesi di ritardo.

Quale hardware per il self-hosting di Vaultwarden?

**Minimo praticabile**: Raspberry Pi 4 (2 GB RAM, microSD 32 GB) o qualsiasi VPS da 3-5 €/mese (Contabo, OVH, Hetzner CX11). **Comodo**: Raspberry Pi 4 (4 GB RAM, SSD USB 3.0) o VPS 4 GB RAM. Vaultwarden usa ~100 MB di RAM a riposo, ~200 MB al picco. Lo spazio dipende dagli allegati: ~50 MB per 500 voci senza allegati.

Il TLS / HTTPS è obbligatorio per Vaultwarden?

**Sì, assolutamente**. I client Bitwarden si rifiutano di connettersi a un server HTTP non cifrato (eccetto localhost in dev). Devi distribuire un certificato TLS. Soluzione standard: Let's Encrypt via certbot (gratuito, rinnovo automatico) con proxy nginx o Caddy. Il nostro tutorial illustra l'opzione Caddy (più semplice: 1 riga di configurazione gestisce l'HTTPS automatico).

Come fare backup affidabili di Vaultwarden?

Vaultwarden memorizza i suoi dati in SQLite (predefinito) o PostgreSQL/MySQL (opzione). Backup minimo: copiare regolarmente il file db.sqlite3 su uno storage esterno. Soluzione avanzata: usare litestream (replica continua di SQLite su S3). La nostra raccomandazione: un cronjob orario che comprime la cartella data e la carica cifrata su Backblaze B2.

Vaultwarden Self-Host o Bitwarden Cloud ufficiale?

**Vaultwarden self-host**: zero costi ricorrenti se il server è già disponibile, pieno controllo dei dati, ma sei responsabile di uptime/backup/sicurezza. **Bitwarden hosted ufficiale**: 10 $/anno per Premium, dati cifrati zero-knowledge, un team professionale gestisce infra/backup/aggiornamenti. Raccomandazione: self-host se sei un professionista sysadmin/devops. Bitwarden hosted in tutti gli altri casi.