Come installare Vaultwarden con Docker: una guida completa per ospitare autonomamente le tue password

Ultimo aggiornamento: 31/08/2026

  • Vaultwarden è un server non ufficiale compatibile con i client Bitwarden.
  • La cartella /data deve essere conservata utilizzando un volume persistente.
  • L'accesso da altri dispositivi richiede un indirizzo HTTPS configurato correttamente.
  • Disattiva i record aperti dopo aver creato gli account necessari.
Come installare Vaultwarden con Docker Compose

Vaultwarden ti permette di ospitare un gestore di password compatibile con i client Bitwarden sul tuo server. In questo modo, puoi decidere dove vengono archiviate le informazioni, chi può accedere al servizio e come vengono eseguiti i backup.

È importante chiarire fin dall'inizio che Vaultwarden non è il server ufficiale di BitwardenSi tratta di un'implementazione indipendente, sviluppata dalla comunità e scritta in Rust, che replica gran parte dell'API di Bitwarden. Per questo motivo, può essere utilizzata con le app mobili ufficiali, i programmi desktop e le estensioni di Bitwarden.

L'hosting autonomo del servizio offre un maggiore controllo, ma Ciò non garantisce automaticamente una maggiore sicurezzaDa quel momento in poi, la responsabilità di installare gli aggiornamenti, proteggere l'accesso, esaminare i log, mantenere il protocollo HTTPS e garantire che i backup possano essere ripristinati è a tuo carico.

Articolo correlato:
I migliori gestori di password

Cosa serve per installare Vaultwarden con Docker

Cosa serve per installare Vaultwarden con Docker

Prima di iniziare, avrai bisogno di un sistema compatibile con Docker che rimanga acceso quando desideri sincronizzare le password. Potrebbe trattarsi di un server Linux, un NAS, un mini PC o un Raspberry Pi con un'architettura supportata dall'immagine.

Avrai inoltre bisogno di:

  • Motore Docker Installato e funzionante.
  • L'attuale componente aggiuntivo di Docker Compose.
  • Una cartella in cui i dati possono essere archiviati in modo permanente.
  • Accesso a un terminale con autorizzazioni per gestire Docker.
  • Un metodo di accesso sicuro se si intende utilizzare il servizio da altri dispositivi.

Non esiste un requisito universale di memoria o spazio di archiviazione per tutte le installazioni. Il consumo dipende dal numero di utenti, allegati, dimensioni dello spazio di archiviazione e altri servizi in esecuzione sullo stesso computer. Per l'uso domestico, di solito è un'applicazione leggera, ma dovresti riservare spazio sufficiente per i dati e i relativi backup.

Verifica l'installazione utilizzando:

docker --version
docker compose version

Se entrambi i comandi mostrano una versione, puoi continuare.

Come installare Vaultwarden con Docker Compose

Come installare Vaultwarden con Docker

Crea una cartella dedicata e accedi al suo interno:

mkdir vaultwarden
cd vaultwarden

All'interno della cartella, crea un file chiamato compose.yml con questa configurazione iniziale:

services:
  vaultwarden:
    image: vaultwarden/server:latest
    container_name: vaultwarden
    restart: unless-stopped
    environment:
      SIGNUPS_ALLOWED: "true"
    volumes:
      - ./vw-data:/data
    ports:
      - "127.0.0.1:8080:80"

L'assemblea ./vw-data:/data È essenziale. La cartella /data Contiene il database, gli allegati, la configurazione e le chiavi utilizzate dal server. Se si elimina il contenitore senza conservare questa cartella, si perderanno le informazioni in essa contenute.

L'indirizzo 127.0.0.1 Questa installazione iniziale risponde solo sul server stesso. È una configurazione adatta per testare Vaultwarden senza esporre ancora la porta alla rete.

Avvia il container:

docker compose up -d

Verifica il suo stato:

docker compose ps
docker compose logs --tail=100 vaultwarden

Dallo stesso dispositivo è possibile aprire:

http://localhost:8080

Accesso tramite localhost Questa operazione serve a completare la configurazione iniziale. Per connettersi da un altro computer, un'app mobile o un'estensione, sarà necessario configurare un indirizzo sicuro tramite HTTPS.

Come creare il tuo primo account e chiudere la registrazione

Apri l'interfaccia web, crea il tuo primo account e verifica di poter accedere. Usa un password principale lunga, unica e facile da ricordare, in quanto protegge l'accesso all'intero magazzino.

Dopo aver creato gli account necessari, modifica compose.yml e modifiche:

SIGNUPS_ALLOWED: "true"

di:

SIGNUPS_ALLOWED: "false"

Applica la modifica ricreando il contenitore:

docker compose up -d

Vaultwarden consente agli utenti anonimi di creare account per impostazione predefinita. Mantenere la registrazione aperta inutilmente facilita l'accesso di terzi al server, permettendo loro di occupare spazio senza autorizzazione.

Contenuti esclusivi: clicca qui  Come nascondere la rete Wi-Fi

Se in seguito abiliti il ​​pannello di amministrazione, potrai inviare inviti anche con la registrazione pubblica disabilitata.

Perché Vaultwarden ha bisogno di HTTPS

Il negozio web utilizza l'API Web Crypto del browser. Queste funzionalità crittografiche sono in genere disponibili solo in contesti sicuri, come HTTPS o localhost.

Per questo motivo, l'apertura http://192.168.1.50:8080 Da un altro computer, potrebbero essere visualizzati errori anche se il container è in esecuzione. La pubblicazione della porta sulla rete non sostituisce la configurazione HTTPS.

Esistono tre modi comuni per utilizzare Vaultwarden:

  • Solo server: accesso tramite localhostutile per i test.
  • Su una rete privata o VPN: Accesso limitato, ma con mantenimento di un certificato HTTPS valido.
  • Da Internet: dominio, proxy inverso, certificato valido e firewall configurato correttamente.

Non è necessario rendere Vaultwarden accessibile pubblicamente per utilizzarlo al di fuori della propria abitazione. Una VPN può limitare l'accesso ai dispositivi autorizzati, ma l'indirizzo utilizzato dai client deve comunque disporre di un certificato riconosciuto.

Come configurare HTTPS con Caddy

Come configurare HTTPS con Caddy

Caddy è una delle opzioni più semplici perché può richiedere e rinnovare automaticamente i certificati tramite ACME. Per utilizzare un certificato pubblico, il dominio deve essere risolvibile sul tuo server e le porte necessarie devono essere accessibili.

Una configurazione congiunta di Vaultwarden e Caddy può utilizzare questo file. compose.yml:

services:
  vaultwarden:
    image: vaultwarden/server:latest
    container_name: vaultwarden
    restart: unless-stopped
    environment:
      DOMAIN: "https://vault.example.com"
      SIGNUPS_ALLOWED: "false"
    volumes:
      - ./vw-data:/data

  caddy:
    image: caddy:2
    container_name: vaultwarden-caddy
    restart: unless-stopped
    depends_on:
      - vaultwarden
    ports:
      - "80:80"
      - "443:443"
      - "443:443/udp"
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile:ro
      - ./caddy-data:/data
      - ./caddy-config:/config

Sostituisce vault.example.com per il tuo dominio effettivo. Quindi crea un file chiamato Caddyfile:

vault.example.com {
    reverse_proxy vaultwarden:80 {
        header_up X-Real-IP {remote_host}
    }
}

Attiva i servizi:

docker compose up -d

Caddy invierà le richieste al container tramite la rete interna creata da Compose. La configurazione attuale è in grado di gestire anche le notifiche WebSocket attraverso la stessa destinazione, quindi non è necessario pubblicare un'altra porta di Vaultwarden.

La variabile DOMAIN deve contenere l'URL esterno esatto, incluso https://Un indirizzo errato può causare problemi con allegati, link, autenticazione o client.

Come collegare le app ufficiali di Bitwarden

Nella schermata di accesso dell'estensione, nell'app mobile o nel programma desktop, apri il selettore del server e scegli l'opzione Autogestito.

Inserisci l'indirizzo completo:

https://vault.example.com

Salva le impostazioni prima di accedere. Ogni client deve essere connesso allo stesso server affinché le modifiche vengano sincronizzate correttamente.

Se si utilizza un certificato rilasciato da un'autorità privata, sarà necessario installare e considerare attendibile tale autorità su tutti i dispositivi. Per evitare problemi di compatibilità, è preferibile utilizzare un certificato pubblico valido o una soluzione privata di cui si possa controllare correttamente la catena di fiducia.

Una volta che il client è connesso, puoi Importa le password di Chrome in Vaultwarden e verifica che vengano visualizzati su tutti i tuoi dispositivi.

Come proteggere il pannello di amministrazione

Vaultwarden offre un pannello opzionale in /adminDa lì è possibile visualizzare utenti, organizzazioni, diagnostica e determinate opzioni del server.

Se non hai bisogno del pannello, la cosa più sicura da fare è lascialo disabilitatoPer abilitarlo, è necessario configurare ADMIN_TOKENAnziché memorizzare la password in chiaro, genera un hash Argon2id:

docker run --rm -it vaultwarden/server /vaultwarden hash

Il comando richiederà la password due volte e restituirà una stringa che inizia con $argon2id$.

Un modo pratico per evitare problemi con i simboli del dollaro è salvarlo in un file .env situato accanto a compose.yml:

VAULTWARDEN_ADMIN_TOKEN='$argon2id$v=19$m=...'

Quindi aggiungi al servizio:

environment:
  ADMIN_TOKEN: "${VAULTWARDEN_ADMIN_TOKEN}"

Se scrivi l'hash direttamente all'interno compose.yml, devi raddoppiare ogni simbolo del dollaro come $$ per impedire a Docker Compose di interpretarlo come una variabile.

Contenuti esclusivi: clicca qui  È sicuro usare Tinder?

Verifica la configurazione elaborata utilizzando:

docker compose config

Il pannello deve essere accessibile esclusivamente tramite HTTPS. Se possibile, limitare l'accesso alla rete locale, a una VPN o a specifici indirizzi IP.

Si prega di notare che dopo aver salvato le opzioni da /adminIl custode del caveau crea config.jsonI suoi valori hanno la precedenza sulle variabili d'ambiente equivalenti. Questa precedenza spiega molti casi in cui la modifica di Compose sembra non produrre alcun cambiamento.

Misure essenziali per proteggere il Guardiano della Volta

La sicurezza non si esaurisce con l'attivazione di HTTPS. Come minimo, è necessario adottare queste misure:

  • Disabilita il registro aperto utilizzando SIGNUPS_ALLOWED=false.
  • Utilizza una password principale univoca e complessa.
  • Attivo autenticazione a due fattori per tutti gli account.
  • Salva il codice di recupero dell'autenticazione in un altro luogo sicuro.
  • Aggiornare regolarmente l'immagine e il sistema host.
  • Non montare cartelle non necessarie o il socket Docker all'interno del container.
  • Limita le porte effettivamente necessarie utilizzando il firewall.
  • Non esporre pubblicamente il database o la cartella vw-data.

Fail2ban può bloccare gli indirizzi che accumulano tentativi di accesso falliti, ma deve essere configurato con attenzione in presenza di un proxy inverso. Caddy o Nginx devono trasmettere l'indirizzo IP reale; in caso contrario, Fail2ban potrebbe bloccare l'indirizzo del proxy stesso.

È inoltre possibile disabilitare la visualizzazione dei suggerimenti per la password. Questi suggerimenti possono facilitare gli attacchi di indovinamento quando il server è accessibile pubblicamente.

Per saperne di più su queste pratiche, puoi consultare come utilizzare gestori di password in modo sicuro.

Come impostare le notifiche via email

La configurazione SMTP consente di inviare inviti, verifiche e notifiche. È necessario specificare il server, il mittente, la porta, il metodo di sicurezza e le credenziali fornite dal proprio servizio di posta elettronica.

Non confondete le email SMTP con un backup del vault. Né dovreste fare affidamento su di esse come unico metodo di recupero dell'account. Se dimenticate la password principale e non avete impostato un altro metodo di recupero, potreste perdere l'accesso ai vostri dati crittografati.

Dopo aver salvato le impostazioni, invia un messaggio di prova e controlla i log se non viene recapitato. Verifica anche le cartelle spam e le restrizioni del tuo provider SMTP.

Come effettuare un backup completo di Vaultwarden

Il database SQLite memorizza utenti, elementi, dispositivi e organizzazioni, ma Non contiene tutti i fileGli allegati e alcuni documenti inviati vengono archiviati in directory separate.

Una copia completa deve includere:

  • db.sqlite3 o una copia coerente del database.
  • La cartella attachments.
  • La cartella sends, se desideri conservare quei file.
  • Il file config.json, se si utilizza il pannello.
  • I file rsa_key*.
  • I file Compose, Caddy e le relative variabili.

Per un backup semplice e coerente, è possibile arrestare temporaneamente Vaultwarden e archiviare la cartella:

docker compose stop vaultwarden
tar -czf vaultwarden-backup-$(date +%F).tar.gz vw-data compose.yml Caddyfile .env
docker compose start vaultwarden

Il file potrebbe contenere il token di amministrazione e le credenziali SMTP. Crittografalo prima di copiarlo a un altro computer o a una memoria remota.

Se non si desidera interrompere il servizio, Vaultwarden include un comando che utilizza il meccanismo di copia di SQLite:

docker exec vaultwarden /vaultwarden backup

Questo comando protegge il database, ma è comunque consigliabile eseguire il backup degli allegati, dei file di configurazione e delle chiavi. Automatizzate i backup, mantenetene almeno uno su un server esterno ed eseguite periodicamente dei test di ripristino.

Contenuti esclusivi: clicca qui  Come funzionano i sistemi di controllo degli accessi?

Come aggiornare Vaultwarden con Docker

Crea una copia verificata prima dell'aggiornamento. Quindi esegui:

docker compose pull
docker compose up -d

Verifica lo stato e gli ultimi messaggi:

docker compose ps
docker compose logs --tail=100 vaultwarden

Docker scaricherà l'immagine e ricreerà il container, preservandolo vw-dataNon utilizzare i comandi di pulizia globale senza prima aver verificato quali contenitori, immagini e reti verranno rimossi.

Nelle installazioni in cui la stabilità è fondamentale, è possibile fissare una versione specifica dell'immagine anziché utilizzare sempre quella predefinita. latestIn questo modo è possibile consultare le note di rilascio e decidere quando applicare ciascun aggiornamento.

Errori comuni durante l'installazione di Vaultwarden con Docker

Errori comuni durante l'installazione di Vaultwarden con Docker

L'interfaccia funziona in locale, ma non da un altro computer.

Il porto è limitato a 127.0.0.1 Oppure il browser rifiuta le funzioni crittografiche quando si accede tramite HTTP. Configurare un indirizzo HTTPS prima di utilizzare il servizio da altri dispositivi.

Il client ufficiale non riesce a connettersi al server.

Seleziona l'ambiente Autogestito e inserire l'indirizzo esatto con https://Controlla il certificato, il DNS, il proxy e la variabile DOMAIN.

Il container si avvia, ma i dati scompaiono quando viene ricreato.

Il controllo del volume non è installato correttamente. Si prega di verificare che ./vw-data:/data appare nelle impostazioni e indica che stai eseguendo Compose dalla cartella prevista.

Non riesco a creare un altro account

Si SIGNUPS_ALLOWED è dentro falseIl comportamento è corretto. Invia un invito dal pannello oppure abilita temporaneamente la registrazione solo durante la creazione dell'account.

L'hash ADMIN_TOKEN non funziona

Verificare l'interpolazione dei segni $Utilizzare un file .env con virgolette singole o doppie se si inserisce la stringa direttamente in Compose.

Le variabili ambientali sembrano essere ignorate

Verifica se esiste vw-data/config.jsonLe opzioni salvate dal pannello possono sovrascrivere le variabili definite in compose.yml.

I certificati funzionano nel browser, ma non sul dispositivo mobile.

Il dispositivo potrebbe non considerare attendibile l'intera catena di certificati. Utilizzare un'autorità di certificazione riconosciuta oppure installare correttamente la propria autorità di certificazione privata e i relativi certificati.

Gli allegati non funzionano

Controlla che DOMAIN abbinare l'indirizzo esterno e assicurarsi che il proxy consenta la dimensione della richiesta necessaria. Controllare anche lo spazio disponibile e le autorizzazioni di vw-data.

Il guardiano della cassaforte non può scrivere all'interno della cartella vw-data

La cartella host ha autorizzazioni incompatibili. Controlla il proprietario e le autorizzazioni in base all'errore mostrato nei log. Non utilizzare chmod 777 come soluzione permanente.

Fail2ban blocca un indirizzo errato

Il proxy non sta trasmettendo l'indirizzo IP reale oppure Fail2ban sta leggendo il campo sbagliato. Configuralo correttamente. X-Real-IP o l'intestazione corrispondente al tuo proxy.

La copia ripristinata non contiene gli allegati

È stato eseguito il backup solo di SQLite. Si prega di ripristinare anche le cartelle. attachments y sends, oltre alla configurazione e alle chiavi RSA.

Vaultwarden ti consente di utilizzare organizzazioni e raccolte per condividere le password familiari utilizzando client compatibili. Prima di aggiungere altri utenti, verificare che HTTPS, l'autenticazione a due fattori e i backup funzionino correttamente.

Il risultato può essere un gestore di password veloce, privato e adattabile, ma la sua sicurezza dipende dalla manutenzione. Il controllo sul server è vantaggioso solo se accompagnato da aggiornamenti, accesso limitato e una comprovata strategia di ripristino.

Come condividere in modo sicuro le password con la tua famiglia senza inviare file
Articolo correlato:
Come condividere in modo sicuro le password con la tua famiglia senza inviare file