SSD Nodes Learn 🎉 VPS da $4.99/mese
Guide Matt ConnorDi Matt Connor · Aggiornato 2026-08-07

Vaultwarden o Bitwarden self-hosted: quale scegliere

Bitwarden ufficiale richiede circa 12 container e 2 GB di RAM; Vaultwarden usa un solo container. Confronta risorse, backup e funzionalita sul VPS.

Cosa sono realmente Vaultwarden e Bitwarden self-hosted

Il confronto tra Vaultwarden e Bitwarden self-hosted riguarda la scelta tra due server che implementano la stessa API per i client, non tra due password manager. Lo stack ufficiale di Bitwarden utilizza circa una dozzina di container dietro nginx, archivia tutti i dati in Microsoft SQL Server ed è associato a un installation ID che si registra con un indirizzo email. Vaultwarden è una reimplementazione non ufficiale dell'API client di Bitwarden, scritta in Rust, che viene eseguita in un unico container e utilizza un unico file SQLite. L'estensione del browser e l'app sul telefono non possono distinguerli, perché entrambi rispondono agli stessi endpoint.

La cifratura è identica in entrambi i casi. I client Bitwarden cifrano il vault prima che qualsiasi dato lasci il dispositivo. Il server archivia quindi blob che non può leggere e, in entrambi i casi, il formato del vault è quello di Bitwarden. Cambiano invece le risorse che devi noleggiare, chi mantiene il codice, quali funzionalità sono a pagamento e quali dati devi includere nei backup.

Il README di Vaultwarden è esplicito sul suo stato: "This project is not associated with Bitwarden or Bitwarden, Inc." È un progetto mantenuto da volontari, senza un servizio di assistenza e senza garanzia. Un maintainer attivo lavora presso Bitwarden e contribuisce nel tempo libero. Si tratta di una cortesia, non di un'approvazione ufficiale.

I tre stack installabili

Molti confronti ignorano che Bitwarden distribuisce due prodotti self-hosted distinti.

Bitwarden standard. Il deployment del fornitore, gestito da uno shell script.

curl -Lso bitwarden.sh "https://func.bitwarden.com/api/dl/?app=self-host&platform=linux" \
  && chmod 700 bitwarden.sh
./bitwarden.sh install

L'installer richiede il dominio, l'eventuale richiesta di un certificato Let's Encrypt, il nome del database e un installation ID con la relativa key, che si ottengono da https://bitwarden.com/host inserendo un indirizzo email. ./bitwarden.sh start scarica quindi le immagini e avvia lo stack. Bitwarden indica 2 GB di RAM e 12 GB di storage come requisiti minimi, 4 GB e 25 GB come valori consigliati, oltre a Docker Engine 26 o versioni successive con il Compose plugin. Il database utilizza un'immagine MSSQL Express. Questa edizione limita il database relazionale a 10 GB, a meno che il deployment non venga configurato per usare un database esterno.

Bitwarden lite. È il deployment precedentemente chiamato Bitwarden Unified. Ha terminato la fase beta ed è stato rinominato a dicembre 2025. Include un container applicativo e un database a scelta:

services:
  bitwarden:
    depends_on:
      - db
    env_file:
      - settings.env
    image: ghcr.io/bitwarden/lite
    restart: always
    ports:
      - "80:8080"
    volumes:
      - bitwarden:/etc/bitwarden
  db:
    environment:
      MARIADB_USER: "bitwarden"
      MARIADB_PASSWORD: "super_strong_password"
      MARIADB_DATABASE: "bitwarden_vault"
      MARIADB_RANDOM_ROOT_PASSWORD: "true"
    image: mariadb:10
    restart: always
    volumes:
      - data:/var/lib/mysql
volumes:
  bitwarden:
  data:

Supporta MariaDB o MySQL, PostgreSQL, SQLite e MSSQL. Richiede 200 MB di RAM e 1 GB di storage. La documentazione ufficiale di Bitwarden specifica due limitazioni. Il prodotto è documentato per l'uso personale e gli home lab, non per l'uso aziendale. Inoltre non esegue backup automatici del database, quindi questa attività è interamente a tuo carico.

Vaultwarden. Un solo container, direttamente dal README del progetto:

docker run --detach --name vaultwarden \
  --env DOMAIN="https://vw.domain.tld" \
  --volume /vw-data/:/data/ \
  --restart unless-stopped \
  --publish 127.0.0.1:8000:80 \
  vaultwarden/server:latest

La riga di pubblicazione associa la porta 8000 soltanto al loopback. Questa scelta è intenzionale. Vaultwarden fornisce HTTP in chiaro e richiede un reverse proxy davanti al servizio per gestire la terminazione TLS (transport layer security). In questo caso TLS è obbligatorio: il web vault esegue la cifratura tramite la WebCrypto API del browser, che i browser rendono disponibile soltanto in un secure context. Di conseguenza, tramite http in chiaro, la pagina di accesso non funziona nel browser prima ancora che venga effettuata una richiesta al server. La guida completa all'installazione di Vaultwarden descrive la configurazione del proxy e del certificato.

Quanta RAM utilizza Vaultwarden rispetto a Bitwarden self-hosted?

I requisiti minimi del fornitore indicano la quantità di RAM sotto la quale l'installer rifiuta di avviarsi, non l'occupazione effettiva del software. I valori riportati di seguito provengono da docker stats --no-stream su installazioni inattive, con un utente, un vault di piccole dimensioni e nessun allegato, su un sistema Ubuntu 24.04 con 4 GB di RAM. Lo spazio su disco comprende le immagini e la directory dei dati dopo il primo avvio completato correttamente.

ChartIdle memory, container count and disk, measured on one Ubuntu 24.04 box
The data behind this chart
[
  {
    "label": "Vaultwarden (SQLite)",
    "idle_ram_mb": 58,
    "containers": 1,
    "disk_gb": 0.4
  },
  {
    "label": "Bitwarden lite + MariaDB",
    "idle_ram_mb": 470,
    "containers": 2,
    "disk_gb": 1.6
  },
  {
    "label": "Bitwarden standard (MSSQL)",
    "idle_ram_mb": "2,400",
    "containers": 12,
    "disk_gb": 6.5
  }
]

Vaultwarden utilizzava 58 MB di RAM in un unico container. Lo stack Bitwarden standard utilizzava circa 2,400 MB distribuiti su 12 container; la maggior parte era occupata dal container MSSQL. Bitwarden lite si attestava a 470 MB, incluso il relativo container MariaDB. Esegui lo stesso comando sul tuo sistema prima di considerare affidabili questi valori, perché cambiano in funzione del numero di utenti, degli allegati e del traffico di sincronizzazione. Inoltre, MSSQL aumenta il working set con il prolungarsi dell'esecuzione.

Per un VPS di piccole dimensioni, la valutazione pratica è questa: Vaultwarden con SQLite funziona senza problemi su un piano da 1 GB, mentre lo stack Bitwarden standard non si avvia. Su un piano da 2 GB lo stack standard soddisfa il requisito minimo documentato, ma lascia pochissima RAM al sistema operativo; di conseguenza, l'out-of-memory killer del kernel può intervenire effettivamente. Quando interviene, dmesg stampa una riga con il nome del processo terminato. In questo stack, di solito si tratta di sqlservr. Per il deployment standard, assegna 4 GB.

Quali funzionalità a pagamento sono gratuite in Vaultwarden?

Eseguire il server di Bitwarden non ha costi, ma le funzionalità a pagamento restano bloccate finché non si carica un file di licenza. Le licenze per gli account individuali Premium e per tutti i piani organizzativi a pagamento (Families, Teams, Enterprise) ne richiedono una. Il file si scarica dal vault web cloud, in Settings e poi Subscription per un account individuale, oppure dalla Admin Console, in Billing e poi Subscription, per un'organizzazione; quindi si carica nella propria istanza. Le licenze delle organizzazioni vengono emesse per l'ID di installazione memorizzato in ./bwdata/env/global.override.env. Un'organizzazione self-hosted mantiene quindi comunque un abbonamento a pagamento e continua a contattare il cloud di Bitwarden per la fatturazione.

Vaultwarden abilita le stesse funzionalità senza licenza e senza abbonamento. Il wiki del progetto le elenca:

  • organizzazioni, raccolte e gruppi
  • allegati di file
  • accesso in due passaggi tramite email, Duo, YubiKey e FIDO2
  • Emergency Access
  • Bitwarden Send
  • chiavi API personali
  • SSO tramite OpenID Connect

SSO è la funzionalità più recente tra queste e si configura con SSO_ENABLED, SSO_AUTHORITY, SSO_CLIENT_ID e SSO_CLIENT_SECRET. Autentica soltanto l'accesso. Il wiki specifica che una master password è comunque necessaria e non è gestita dal provider di identità, perché da questa password deriva la chiave che decritta il vault. Impostare SSO_AUTHORITY sull'issuer di discovery di un provider di identità Authentik self-hosted consente agli utenti di autenticarsi in quella piattaforma e poi sbloccare il vault con la master password. Il valore deve corrispondere al campo issuer restituito dall'endpoint di discovery, senza il suffisso /.well-known/openid-configuration finale.

Quello che Vaultwarden non offre è un fornitore. Bitwarden dispone delle certificazioni SOC 2 Type 2 e ISO 27001, pubblica report di audit di terze parti e gestisce un programma privato di bug bounty su HackerOne. Queste garanzie riguardano il codice e il servizio di Bitwarden, non il server installato, ma se un auditor richiede un fornitore identificabile per il password manager, affidarsi a una reimplementazione sviluppata da volontari rende la valutazione più complessa.

Le app ufficiali di Bitwarden funzionano con Vaultwarden?

Sì. Vaultwarden implementa l'API client, quindi le estensioni per browser, le applicazioni desktop, le applicazioni mobili e il vault web incluso funzionano tutte con il server. In ogni client è necessario impostare l'URL del server self-hosted nella schermata dell'ambiente prima di effettuare l'accesso, non dopo.

Una funzionalità richiede una configurazione aggiuntiva: le notifiche push per le applicazioni mobili. Senza notifiche push, l'app sincronizza i dati quando viene aperta o secondo il proprio intervallo, quindi una password modificata sul laptop non compare sul telefono finché non si apre l'app. Vaultwarden può usare il relay push di Bitwarden e richiede un ID e una chiave di installazione dalla stessa pagina https://bitwarden.com/host utilizzata dall'installer ufficiale.

PUSH_ENABLED=true
PUSH_INSTALLATION_ID=<your installation id>
PUSH_INSTALLATION_KEY=<your installation key>

I server nella regione UE richiedono anche PUSH_RELAY_URI=https://api.bitwarden.eu e PUSH_IDENTITY_URI=https://identity.bitwarden.eu. La wiki documenta due problemi che è utile conoscere prima di dedicare un'ora al troubleshooting. Un'app installata da F-Droid o Neo Store non dispone del supporto Firebase e non riceverà mai notifiche push, indipendentemente dalla configurazione del server. Per un'app che si è connessa prima di Vaultwarden 1.30.2 è necessario cancellare i dati, in modo che possa registrare un token push.

Quanto è sicura una reimplementazione?

La cronologia degli audit di Bitwarden è lunga e pubblica. Cure53 l'ha esaminato nel 2018, 2021, 2022 e 2023. IOActive e Mandiant hanno esaminato i client nel 2024; Fracture Labs ha svolto valutazioni web e di rete nel 2024 e nel 2025; Unit 42 ha valutato le applicazioni mobili nel 2025; infine, l'Applied Cryptography Group di ETH Zurich ha esaminato la crittografia nel 2025.

Anche Vaultwarden è stato esaminato da soggetti esterni, nonostante molti presumano che nessuno lo analizzi. Il Bundesamt für Sicherheit in der Informationstechnik (BSI) tedesco ha incaricato mgm security partners di testarlo tra febbraio e maggio 2024, nell'ambito del progetto di analisi del codice Caos 3.0. La revisione ha classificato due risultati come ad alta gravità. Separatamente, ERNW ha segnalato un bypass dell'autenticazione che interessava le versioni precedenti alla 1.32.5 (CVE-2024-55225), corretto a novembre 2024. La versione 1.37.0, rilasciata a luglio 2026, includeva correzioni per SSRF (server side request forgery) attraverso l'endpoint delle icone, per l'accesso ai cifrari tra organizzazioni e per un bypass dei criteri dell'organizzazione durante le importazioni delle directory.

Questa cronologia mostra un progetto dotato di un processo di gestione delle segnalazioni funzionante. Indica anche la superficie di attacco che ricorre più spesso: la pagina di amministrazione. Considera quindi quella pagina per ciò che è: un componente sensibile. Rimane disabilitata se ADMIN_TOKEN non è impostato e devi memorizzare un hash, non il token in chiaro.

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

Il comando stampa una stringa PHC Argon2 (password hashing competition format) da inserire in ADMIN_TOKEN. Abilita HTTPS prima di abilitare la pagina di amministrazione, perché il token viene inviato nella richiesta e un token in chiaro su una connessione HTTP non cifrata può essere letto da chiunque si trovi lungo il percorso. Se possibile, mantieni /admin non esposto a Internet e abbinalo alle normali misure di hardening dell'host, ad esempio limitare l'accesso SSH al server.

Cosa si rompe quando cambia l'API ufficiale

Questo è il rischio che spesso viene sottovalutato. Bitwarden rilascia i client e questi si aggiornano automaticamente dagli app store durante la notte. Vaultwarden deve restare compatibile. Quando una release del client modifica il contratto dell'API, un'istanza di Vaultwarden non aggiornata si trova a comunicare con un client già passato alla nuova versione, e gli accessi o la sincronizzazione iniziano a non funzionare sui dispositivi che non avete modificato.

Le note di rilascio riportano un esempio concreto. Vaultwarden 1.37.0 specifica: "This update is required for support with clients with version 2026.7.0+, please update before reporting any issues with them." Ad agosto 2026, la release corrente è la 1.37.1, pubblicata il 29 luglio 2026.

Due abitudini riducono questo rischio. Bloccate una versione specifica del tag dell'immagine invece di latest, così un pull automatico non può aggiornare il server alle 3 di notte. Monitorate quindi il feed delle release ed eseguite gli aggiornamenti deliberatamente, leggendo prima le note, perché le modifiche incompatibili vengono indicate lì e da nessun'altra parte. Per esempio, la versione 1.35.5 ha invalidato durante l'aggiornamento tutti i token esistenti per il riconoscimento dell'autenticazione a due fattori, disconnettendo gli utenti da una fase che pensavano di avere memorizzato.

La distribuzione standard di Bitwarden presenta il problema opposto. Gli aggiornamenti vengono eseguiti tramite ./bitwarden.sh updateself e ./bitwarden.sh update e applicano migrazioni al database. Un backup creato prima della migrazione non consente di ripristinare lo schema successivo alla migrazione. Create quindi il backup e annotate la versione in uso al momento della sua creazione.

Backup: qui si perdono davvero i vault

La directory dei dati di Vaultwarden contiene il server. Conserva questi elementi:

  • db.sqlite3
  • ogni file rsa_key*, inclusi rsa_key.pem e rsa_key.der
  • attachments/
  • config.json
  • sends/

Non copiare db.sqlite3 con cp mentre il container è in esecuzione. SQLite potrebbe trovarsi nel mezzo di un'operazione di scrittura, quindi la copia potrebbe contenere un database danneggiato che sembra integro fino al ripristino. Usa invece l'API di backup online:

sqlite3 data/db.sqlite3 ".backup '/path/to/backups/db-$(date '+%Y%m%d-%H%M').sqlite3'"

A partire dalla versione 1.32.1, nell'immagine è disponibile anche il comando /vaultwarden backup integrato. In entrambi i casi, lo snapshot resta sullo stesso disco dell'originale finché non lo sposti. Trasferiscilo quindi fuori dal server pianificando snapshot restic verso uno storage esterno. I file rsa_key sono importanti quanto il database: il server usa questa chiave per firmare i token di sessione. Se ripristini un database accanto a una chiave appena generata, tutti gli utenti vengono disconnessi e gli inviti alle organizzazioni ancora in corso non funzionano.

Bitwarden standard esegue il backup di un numero maggiore di componenti. Il container mssql scrive i backup notturni del database in ./bwdata/mssql/backups e ne conserva 30 giorni, purché il container sia in esecuzione. Puoi forzare un backup con:

docker exec -i bitwarden-mssql /backup-db.sh

Le directory da conservare sono ./bwdata/env (variabili d'ambiente, incluse le password del database e dei certificati), ./bwdata/core/attachments, ./bwdata/mssql/data e ./bwdata/core/aspnet-dataprotection. Quest'ultima viene spesso dimenticata. Contiene i dati di protezione del framework, inclusi i token di autenticazione e alcune colonne del database. Se ripristini il database senza questa directory, le colonne protette restano illeggibili. Bitwarden lite non esegue alcun backup automatico. Scegliere lite significa quindi gestire una pianificazione dei dump, esattamente come con Vaultwarden.

Migrazione in entrambe le direzioni

La migrazione viene eseguita tramite i client, non tramite i server, perché l'esportazione e l'importazione sono funzioni dei client. La procedura è quindi la stessa in entrambe le direzioni.

Ogni utente esporta i dati dal vault web o dall'app desktop, crea un account sul nuovo server e importa i dati. I formati disponibili sono .json in testo in chiaro, .csv in testo in chiaro, .json cifrato e un .zip che contiene il JSON e gli allegati per i singoli vault. Le carte, le identità, le passkey memorizzate e le chiavi SSH vengono mantenute solo nei formati JSON; una migrazione CSV le elimina senza segnalarlo. Nessun formato di esportazione include gli elementi del cestino o i Sends, e i dati di proprietà dell'organizzazione non fanno parte dell'esportazione di un singolo utente.

Considera un'esportazione in testo in chiaro come un secret attivo, perché è esattamente questo: l'intero vault memorizzato su disco senza cifratura. Esportala, importala ed eliminala nella stessa sessione. Non inviarla mai tramite email o chat.

Durante una migrazione c'è un problema che spesso viene scoperto troppo tardi. Un'esportazione cifrata associata al tuo account non può essere importata in un account diverso, e il trasferimento tra server implica per definizione un account diverso. Scegli invece l'opzione di esportazione protetta da password, che è portabile.

Il passaggio da Vaultwarden a Bitwarden standard è la direzione più complessa, perché la struttura dell'organizzazione non viene trasferita nell'esportazione. Ricrea l'organizzazione sul nuovo server, invita nuovamente gli utenti e chiedi a ciascun utente di importare il proprio vault. Pianifica una finestra di manutenzione, invece di scoprire questo vincolo il giorno della migrazione.

Quale dovresti eseguire?

Esegui Vaultwarden se sei un singolo utente, una famiglia o gestisci un home lab su un VPS da 1 GB o 2 GB. Organisations, Emergency Access e Send sono inclusi gratuitamente, il consumo di memoria a riposo è all'incirca quello di una scheda del browser e il backup consiste in un file SQLite e una directory di piccole dimensioni. È questa combinazione a rendere Vaultwarden la soluzione più diffusa per la gestione self-hosted delle password.

Esegui il server ufficiale di Bitwarden quando altre persone dipendono professionalmente dal servizio: ad esempio, un'azienda che necessita di un contratto di supporto, un requisito di conformità che impone l'uso di quel fornitore oppure funzionalità enterprise già acquistate. Assegna 4 GB alla distribuzione standard e considera il file di licenza e l'installation ID parte della distribuzione, non semplice documentazione amministrativa.

Bitwarden lite si colloca in una posizione intermedia poco definita. È codice del fornitore con un ingombro molto più contenuto, caratteristica realmente interessante, ma Bitwarden lo documenta per l'uso personale e gli home lab e non offre backup automatici. Devi gestire l'operatività di Vaultwarden senza disporre del relativo set di funzionalità gratuito. Sceglilo quando per te il codice del fornitore conta più delle funzionalità e sei disposto a gestire direttamente il database.

Se devi ancora decidere quali altri servizi ospitare sul server, la panoramica più ampia delle opzioni self-hosting mette questa scelta a confronto con gli altri servizi che utilizzano la stessa RAM.

FAQ

Vaultwarden è sufficientemente sicuro per un vero gestore di password?

Per l'uso personale e familiare, sì, a determinate condizioni. I client cifrano il vault prima di inviarlo al server, quindi Vaultwarden non vede mai la password principale né dati in chiaro. Il software è stato sottoposto a verifiche esterne: BSI ha incaricato mgm security partners di esaminarlo tra febbraio e maggio 2024, mentre ERNW ha segnalato un bypass dell'autenticazione corretto nella versione 1.32.5. Mantieni la versione aggiornata, disabilita la pagina di amministrazione oppure proteggila con un ADMIN_TOKEN con hash Argon2 e pubblica il servizio solo tramite HTTPS. Un'azienda che necessita di supporto del fornitore o di documentazione per gli audit dovrebbe usare il server ufficiale di Bitwarden.

Quanta RAM richiede Vaultwarden rispetto a Bitwarden self-hosted?

Nelle installazioni inattive misurate con docker stats --no-stream, Vaultwarden con SQLite utilizzava circa 58 MB in un container, mentre la distribuzione standard di Bitwarden utilizzava circa 2,400 MB distribuiti su 12 container, in gran parte a causa del database MSSQL. Bitwarden indica 2 GB come requisito minimo e 4 GB come quantità consigliata per lo stack standard, oltre a 200 MB per Bitwarden lite. Vaultwarden funziona su un VPS da 1 GB, mantenendo memoria disponibile.

Serve una licenza Bitwarden per il self-hosting?

Non per un vault individuale gratuito. L'esecuzione del server è gratuita. È necessario un file di licenza per sbloccare le funzionalità premium individuali e qualsiasi piano organizzativo a pagamento, inclusi Families, Teams ed Enterprise. Il file si scarica dal vault web cloud e si carica nella propria istanza; le licenze organizzative vengono emesse in base all'ID di installazione memorizzato in ./bwdata/env/global.override.env. Vaultwarden non richiede licenze e abilita autonomamente le funzionalità organizzative.

Posso passare da Vaultwarden a Bitwarden in un secondo momento, o tornare indietro?

Sì, in entrambe le direzioni, tramite i client. Ogni utente esporta il proprio vault dal vault web o dall'applicazione desktop e lo importa nel nuovo server dopo aver creato un account. L'esportazione .zip include gli allegati dei vault individuali, mentre i file JSON includono carte, identità, passkey e chiavi SSH. Gli elementi nel cestino e i Sends non sono inclusi in alcun formato di esportazione. Anche gli elementi di proprietà dell'organizzazione devono essere esportati separatamente da un proprietario. Pianifica quindi di ricreare l'organizzazione e invitare nuovamente gli utenti nel nuovo server.

#vaultwarden#bitwarden#password-manager#self-hosting#docker