Vai al contenuto principale

Self-hosting di Bitwarden con Docker: guida completa all’installazione

Una guida pratica per eseguire la tua cassaforte Bitwarden con Docker, dall’installazione iniziale a configurazione, aggiornamenti e risoluzione dei problemi.
· 15 min leggi

Scopri con l'IA

In questo articolo ti guiderò nell’installazione di Bitwarden con Docker su un server Ubuntu pulito, nella configurazione di HTTPS con Let's Encrypt e nella risoluzione dei problemi più comuni.

Se stai iniziando ora con Docker, ti conviene prima iscriverti ai nostri corsi Introduction to Docker o Intermediate Docker: impara le basi prima di gestire setup multi-container.

Cos’è il deployment Docker di Bitwarden?

Bitwarden ha un installer ufficiale basato su Docker che ti permette di eseguire un password manager alle tue condizioni.

Ti basta eseguire un unico script di installazione. Non serve installare manualmente database, server web o scrivere codice. Docker scarica container preconfigurati, imposta la rete tra di loro e mette tutto in funzione. Gli aggiornamenti funzionano allo stesso modo: esegui lo script di update e Docker fa il resto.

Il setup Docker di Bitwarden gira come più container che lavorano insieme. Hai un container web vault per l’interfaccia utente, un container API per gestire le richieste, un container database per archiviare i dati della cassaforte cifrati e servizi di supporto per allegati e icone. Docker Compose orchestra questi container affinché possano comunicare tra loro.

È tutto preconfigurato per te.

Questo approccio multi-container significa che ogni componente gira isolato. Se devi modificare il database, puoi riavviare solo quel container senza toccare l’interfaccia web. Se vuoi controllare i log, ogni servizio ha il proprio stream di log.

Il deployment ufficiale usa Docker Compose per gestire tutto tramite un unico file di configurazione, rendendo il sistema più semplice da capire e mantenere rispetto a un’installazione tradizionale su server.

Requisiti prima di eseguire Bitwarden con Docker

Ti servono alcune cose prima di eseguire Bitwarden, ma nulla richiede hardware enterprise o setup complessi.

Un server o VM Linux è il punto di partenza. Ubuntu Server è tutto ciò che ti serve. Puoi usare un’istanza cloud da AWS, DigitalOcean o Linode. Un’istanza base con 2GB di RAM e 20GB di storage è sufficiente per uso personale o piccoli team.

Docker e Docker Compose gestiscono l’installazione vera e propria. Installerai Docker Engine (non Docker Desktop) e Docker Compose come pacchetti separati. La maggior parte delle distribuzioni Linux li include nei rispettivi package manager.

Un nome di dominio è richiesto perché Bitwarden necessita di HTTPS per funzionare. Non puoi eseguirlo su un indirizzo IP. Dovrai puntare il tuo dominio all’IP del server prima di iniziare l’installazione.

Le porte 80 e 443 devono essere aperte sul server. La porta 80 gestisce il traffico HTTP e la validazione dei certificati, mentre la 443 serve il traffico HTTPS vero e proprio. Configura il firewall e i security group del provider cloud per consentire connessioni in ingresso su entrambe le porte.

Ti servono anche competenze base da riga di comando. Farai SSH nel server, eseguirai script di installazione e modificherai file di configurazione. Se sai navigare tra le directory ed eseguire comandi con sudo, sei pronto.

E questo è tutto! Ci sono cose da sapere, certo, ma chiunque sia un minimo pratico può farcela. Ti mostro come, tra poco.

Come installare Bitwarden con Docker (metodo ufficiale)

In questa guida uso un droplet Ubuntu di DigitalOcean e Cloudflare per gestione di dominio e DNS. Sei libero di usare altri provider e servizi, ma se vuoi seguire senza stress, ti consiglio di scegliere gli stessi.

Configurazione dell’ambiente

Per prima cosa, crea un droplet DigitalOcean con Ubuntu 24.04 LTS. Il droplet Basic da 12 $/mese (2GB RAM, 1 CPU, 50GB SSD) gestisce Bitwarden senza problemi per uso personale o piccoli team. Scegli un datacenter vicino a te per tempi di risposta migliori. Non dimenticare di aggiungere una chiave SSH esistente o di crearne una nuova.

Dopo l’avvio del droplet, annota il suo indirizzo IP pubblico dalla dashboard di DigitalOcean.

Dettagli del droplet DigitalOcean

Dettagli del droplet DigitalOcean

Poi configura il DNS in Cloudflare. Accedi al tuo account Cloudflare e aggiungi un record A che punti il tuo dominio all’IP del droplet:

  • Tipo: A

  • Nome: vault (o il sottodominio che preferisci)

  • Indirizzo IPv4: l’IP del tuo droplet

  • Stato proxy: Off (nuvola grigia)

Disattiva il proxy di Cloudflare per il setup iniziale. Let's Encrypt ha bisogno di accedere direttamente al tuo server per verificare la proprietà del dominio. Potrai attivare il proxy dopo che Bitwarden è in esecuzione e i certificati sono stati generati.

Per questo articolo ho usato uno dei miei domini attivi:

Configurazione DNS su Cloudflare

Configurazione DNS su Cloudflare

La propagazione DNS richiede qualche minuto. Esegui questo comando shell per verificare che le modifiche siano visibili:

nslookup vault.yourdomain.com

Dovresti vedere l’IP del tuo droplet nella risposta.

Risultati di Nslookup

Risultati di Nslookup

Ora puoi connetterti al tuo droplet via SSH:

ssh root@your-droplet-ip

Ed eccoti dentro:

Connessione all'istanza Ubuntu

Connessione all'istanza Ubuntu

La prima cosa da fare è aggiornare i pacchetti di sistema. Esegui il comando seguente:

apt update && apt upgrade -y

Ora sei pronto per installare Docker e Bitwarden.

Come detto prima, ti serviranno sia Docker che Docker Compose. Esegui questi comandi per installarli:

sudo apt install docker.io docker-compose-v2 -y
sudo systemctl enable docker
sudo systemctl start docker

Ora verifica l’installazione:

docker --version
docker compose version

Dovresti vedere i numeri di versione per entrambi i comandi.

Versioni di Docker e Docker Compose

Versioni di Docker e Docker Compose

A seguire, ti mostro come installare Bitwarden.

Download e preparazione dell’installer di Bitwarden

L’installe ufficiale di Bitwarden è nel loro repository GitHub. Puoi scaricarlo direttamente sul server:

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

Questo scarica lo script di installazione e lo rende eseguibile. Lo script gestisce tutto: dal download delle immagini Docker, alla creazione dei file di configurazione, fino all’impostazione della struttura delle directory.

Il passo successivo è creare una directory in cui Bitwarden salverà i dati:

sudo mkdir /opt/bitwarden

Ora puoi spostare lì lo script di installazione:

sudo mv bitwarden.sh /opt/bitwarden/
cd /opt/bitwarden

Infine, esegui l’installer:

sudo ./bitwarden.sh install

Lo script crea una directory bwdata che contiene tutti i file di configurazione di Bitwarden, i certificati, i log e i file del database. È qui che vive tutto, quindi esegui regolarmente il backup di questa directory.

Esecuzione dell’installazione

L’installer ti farà alcune domande. Rispondi con attenzione perché, se sbagli, dovrai ricominciare da capo.

Inserisci il tuo nome di dominio esattamente come appare nei record DNS. Se su Cloudflare hai configurato vault.yourdomain.com, inserisci quella stringa esatta. Non includere https:// né slash finali.

Scegli Let's Encrypt per i certificati SSL. L’installer gestirà automaticamente generazione e rinnovo dei certificati. Se usi il proxy di Cloudflare (nuvola arancione), potresti doverlo disattivare temporaneamente durante il setup iniziale affinché Let's Encrypt possa verificare il dominio.

Inserisci il tuo indirizzo email. Qui riceverai i promemoria di scadenza dei certificati.

Installazione di Bitwarden (1)

Installazione di Bitwarden (1)

Bitwarden scaricherà quindi le immagini Docker necessarie. Ci vorrà un minuto circa, poi seguirà un altro giro di prompt.

Scegli un nome per il database. Non serve essere creativi, vault va benissimo.

Installazione di Bitwarden (2)

Installazione di Bitwarden (2)

L’installazione procederà poi con il download di ulteriori immagini Docker.

Recupera l’ID e la chiave di installazione. Apri la pagina Bitwarden Host e inserisci l’email dell’admin e la regione. Otterrai entrambi i valori: copiali e incollali quando richiesto durante l’installazione.

ID e chiave di installazione di Bitwarden

ID e chiave di installazione di Bitwarden

E questo è tutto: l’installazione è completa.

Installazione di Bitwarden (3)

Installazione di Bitwarden (3)

Lo script genera i file di configurazione in ./bwdata/config.yml e in ./bwdata/env/global.override.env. Puoi modificare direttamente questi file se in seguito devi cambiare impostazioni.

Non resta che avviare Bitwarden:

sudo ./bitwarden.sh start

Docker scarica tutte le immagini necessarie e avvia i container. Al primo avvio ci vogliono alcuni minuti. Lo script mostra l’avanzamento mentre ogni container parte.

Installazione di Bitwarden (4)

Installazione di Bitwarden (4)

Dopo un paio di minuti, dovresti vedere il messaggio Bitwarden is up and running! nel terminale. Significa che l’installazione è andata a buon fine ed è il momento di passare alla sezione successiva.

Installazione di Bitwarden (5)

Installazione di Bitwarden (5)

Verifica dell’installazione

Apri il tuo dominio in un browser. Dovresti vedere la pagina di login di Bitwarden con un certificato HTTPS valido.

Pagina di login di Bitwarden

Se vedi un avviso sul certificato, probabilmente Let's Encrypt non è riuscito a verificare il dominio. Controlla che:

  • I record DNS puntino all’IP corretto
  • Le porte 80 e 443 siano aperte nel firewall
  • Se usi il proxy di Cloudflare, prova a disattivarlo temporaneamente

Clicca "Create Account" per creare il primo utente. Questo account diventa il proprietario della cassaforte, quindi usa una password principale forte e che non dimenticherai. Bitwarden non può recuperare questa password: se la perdi, i dati della cassaforte sono persi.

Creazione dell'utente Bitwarden

Creazione dell'utente Bitwarden

Dopo aver creato l’account, accedi per verificare che tutto funzioni. Puoi creare una voce di accesso di test e verificare che venga salvata correttamente.

Aggiunta di una voce di login a Bitwarden

Aggiunta di una voce di login a Bitwarden

Funziona come previsto, quindi tornerò al terminale per verificare che lì sia tutto ok.

Esegui questo comando per controllare che tutti i container siano in esecuzione:

sudo docker ps

Dovresti vedere più container con nomi come bitwarden-web, bitwarden-api, bitwarden-db e altri.

Container in esecuzione

Container in esecuzione

Se qualche container risulta "Restarting" o non compare, controlla i log con questi comandi:

sudo docker logs bitwarden-api
sudo docker logs bitwarden-web

Se hai problemi di avvio, di solito sono dovuti a conflitti di porta o permessi.

I conflitti di porta si verificano se qualcos’altro usa le porte 80 o 443. Ferma il servizio in conflitto o cambia le porte di Bitwarden in ./bwdata/config.yml.

I fallimenti di inizializzazione del database indicano di solito problemi di permessi. Verifica che l’utente Docker possa scrivere nella directory bwdata:

sudo chown -R root:root /opt/bitwarden/bwdata
sudo chmod -R 755 /opt/bitwarden/bwdata

Gli errori di generazione dei certificati significano che Let's Encrypt non è riuscito a raggiungere il tuo server. Verifica che il dominio punti all’IP giusto e che il firewall consenta traffico in ingresso sulle porte 80 e 443.

Se i container continuano a riavviarsi, controlla lo spazio su disco e la memoria. Bitwarden necessita di almeno 2GB di RAM per eseguire tutti i servizi.

Configurare HTTPS e certificati

Bitwarden richiede HTTPS per tutte le connessioni. Non c’è modo di eseguirlo in HTTP semplice.

Le estensioni browser e le app mobili di Bitwarden rifiutano di connettersi a endpoint HTTP. Il protocollo richiede connessioni cifrate per proteggere i dati della cassaforte in transito.

Lo script di installazione configura i certificati di Let's Encrypt. Let's Encrypt è un’autorità di certificazione gratuita che emette certificati SSL/TLS e gestisce i rinnovi. Quando hai inserito il dominio durante l’installazione, lo script ha configurato la generazione automatica dei certificati tramite il protocollo ACME di Let's Encrypt.

I certificati scadono dopo 90 giorni, ma il setup Docker di Bitwarden include il rinnovo automatico. Un cron job controlla i certificati in scadenza e li rinnova prima della scadenza. Non devi fare nulla manualmente.

I certificati personalizzati hanno senso in alcune situazioni. Se esegui Bitwarden dietro un reverse proxy che gestisce già la terminazione SSL, puoi disattivare Let's Encrypt e lasciare al proxy la gestione dei certificati. Se la tua organizzazione ha un’autorità di certificazione interna, puoi configurare Bitwarden per usare quei certificati.

Per usare certificati personalizzati, modifica ./bwdata/config.yml e imposta ssl_certificate_path e ssl_key_path ai file dei tuoi certificati.

Uso di certificati personalizzati docker bitwarden

Uso di certificati personalizzati

Poi riavvia Bitwarden:

sudo ./bitwarden.sh restart

Quando il rinnovo dei certificati fallisce, controlla prima i log:

sudo docker logs bitwarden-nginx

I fallimenti più comuni nel rinnovo avvengono quando:

  • Il DNS del tuo dominio è cambiato e non punta più al server
  • Il proxy di Cloudflare è attivo (nuvola arancione) e blocca la verifica di Let's Encrypt
  • La porta 80 è bloccata, impedendo il completamento delle challenge ACME
  • I file di certificato hanno permessi errati

Risolvi il problema alla base, poi attiva manualmente il rinnovo:

sudo docker exec bitwarden-nginx certbot renew

Se va a buon fine, il cron job di rinnovo automatico dovrebbe funzionare nei tentativi futuri.

Configurazione Email (SMTP)

Bitwarden ha bisogno della posta per inviare inviti agli utenti, link di reset password e codici di autenticazione a due fattori.

Senza SMTP configurato, gli utenti non possono reimpostare le password. Non puoi invitare membri del team alla tua organizzazione. Le richieste di accesso di emergenza non funzionano. Il sistema funziona, ma perdi funzionalità critiche di recupero account e gestione utenti.

Le impostazioni SMTP si trovano in ./bwdata/env/global.override.env.

File impostazioni SMTP docker bitwarden

File impostazioni SMTP

Apri questo file e aggiungi la configurazione del tuo provider email:

globalSettings__mail__replyToEmail=[email protected]
globalSettings__mail__smtp__host=smtp.gmail.com
globalSettings__mail__smtp__port=587
globalSettings__mail__smtp__ssl=false
globalSettings__mail__smtp__username=[email protected]
globalSettings__mail__smtp__password=your-app-password

Il formato usa due underscore per rappresentare la configurazione annidata. Ogni __ separa un livello nella gerarchia delle impostazioni.

Dopo aver modificato il file, non dimenticare di riavviare Bitwarden:

sudo ./bitwarden.sh restart

Verifica l’invio delle email richiedendo un reset password o inviando un’email di test dal pannello admin.

Ecco alcuni errori SMTP comuni da evitare:

  • Usare la password email normale invece di una password per app. La maggior parte dei provider richiede di generare una password dedicata per l’accesso SMTP. Gmail la chiama "App Passwords" e si crea nelle impostazioni di sicurezza dell’account Google.

  • Numeri di porta sbagliati. La porta 587 gestisce connessioni STARTTLS, la 465 SSL/TLS e la 25 è solitamente bloccata dai provider cloud. Se una porta non funziona, prova un’altra.

  • Confusione tra SSL/TLS. Imposta ssl=false per STARTTLS sulla porta 587 o ssl=true per SSL diretto sulla porta 465. Mescolare queste impostazioni causa errori di connessione.

  • Firewall che blocca l’SMTP in uscita. Alcuni provider cloud bloccano di default la porta 25 in uscita. Usa invece le porte 587 o 465, raramente bloccate.

Se le email non partono, controlla i log del container API:

sudo docker logs bitwarden-api

Cerca errori di connessione SMTP o di autenticazione. I log mostrano esattamente cosa è andato storto nell’invio.

Aggiornamento e backup di Bitwarden

Con il self-hosting arriva la fatica di backup e aggiornamenti manuali. Per fortuna, sono semplici da fare.

Aggiornare Bitwarden

Prima di aggiornare, ferma Bitwarden e fai un backup dei dati. Gli aggiornamenti possono fallire o introdurre problemi, e hai bisogno di un modo per tornare indietro se qualcosa va storto.

cd /opt/bitwarden
sudo ./bitwarden.sh stop

Esegui il backup dell’intera directory bwdata:

sudo tar -czf bitwarden-backup-$(date +%Y%m%d).tar.gz bwdata/

Sposta questo backup in un posto sicuro, come un disco esterno o un altro server.

Ora aggiorna Bitwarden con questo comando:

sudo ./bitwarden.sh update

Lo script di update scarica le ultime immagini Docker, aggiorna i file di configurazione se serve e riavvia tutti i container. Di solito richiede qualche minuto.

Aggiornamento di Bitwarden

Aggiornamento di Bitwarden

Dopo il completamento, verifica che tutto funzioni accedendo al web vault e controllando che i dati siano integri.

Se l’aggiornamento rompe qualcosa, ripristina semplicemente il backup:

sudo ./bitwarden.sh stop
sudo rm -rf bwdata/
sudo tar -xzf bitwarden-backup-YYYYMMDD.tar.gz
sudo ./bitwarden.sh start

Backup

La directory bwdata contiene tutto ciò che serve a Bitwarden per funzionare. Dovresti effettuarne il backup regolarmente.

Questa directory include:

  • Il database della cassaforte con tutte le password cifrate
  • Certificati SSL
  • File di configurazione
  • Log e allegati
  • Definizioni Docker Compose

Ferma Bitwarden prima del backup per garantire la consistenza dei dati:

sudo ./bitwarden.sh stop
sudo tar -czf bitwarden-backup-$(date +%Y%m%d).tar.gz bwdata/
sudo ./bitwarden.sh start

Conserva i backup in più posizioni. Tienine uno sul server, uno su un’altra macchina e uno nel cloud, se possibile.

Per ripristinare da backup, ferma Bitwarden, elimina l’attuale directory bwdata, estrai il backup e riavvia. Il processo è lo stesso del rollback dopo un update fallito.

Puoi anche automatizzare i backup con un cron job giornaliero o settimanale, a seconda di quanto spesso cambiano i dati della cassaforte.

Problemi comuni con Bitwarden in Docker

Anche con un’installazione pulita, potresti incorrere in problemi. Ecco come diagnosticare i più comuni.

Conflitti di porta si verificano quando un altro servizio usa già le porte 80 o 443. Controlla cosa le sta usando:

sudo netstat -tlnp | grep ':80\\|:443'

Se vedi Apache, Nginx o un altro web server in esecuzione, devi o fermare quel servizio o cambiare le porte di Bitwarden. Per cambiare porte, modifica ./bwdata/config.yml e imposta http_port e https_port su valori diversi, come 8080 e 8443. Poi riavvia:

sudo ./bitwarden.sh restart

I problemi con i certificati si manifestano come avvisi del browser o con Bitwarden che rifiuta di avviarsi. Controlla i log del container nginx con questo comando:

sudo docker logs bitwarden-nginx

Cerca fallimenti nelle challenge ACME o errori di validazione dei certificati. Ecco le cause più comuni:

  • Il DNS non punta ancora al tuo server
  • Il proxy Cloudflare blocca la verifica di Let's Encrypt
  • La porta 80 è bloccata dal firewall
  • Il dominio in config non corrisponde ai tuoi record DNS

Correggi il problema di DNS o firewall, poi richiedi manualmente i certificati:

sudo docker exec bitwarden-nginx certbot renew --force-renewal

I container che non partono indicano di solito problemi con il database o file mancanti. Controlla quali container sono in esecuzione con:

sudo docker ps -a

I container in stato "Exited" o "Restarting" hanno problemi. Controlla i loro log:

sudo docker logs bitwarden-db
sudo docker logs bitwarden-api

Gli errori di inizializzazione del database significano che la directory bwdata ha problemi di permessi. Correggi i permessi:

sudo chown -R root:root /opt/bitwarden/bwdata
sudo chmod -R 755 /opt/bitwarden/bwdata

Se i container ancora non partono, controlla lo spazio disco:

df -h

Ricorda che a Bitwarden servono almeno alcuni GB liberi per funzionare correttamente.

SMTP non funzionante impedisce reset password e inviti agli utenti. Testa prima le impostazioni SMTP controllando i log dell’API quando provi a inviare un’email:

sudo docker logs -f bitwarden-api

Avvia un tentativo di reset password e osserva gli errori SMTP nei log. Ecco i problemi più comuni:

  • Username o password errati (usa password per app, non quella normale)
  • Porta o impostazioni SSL sbagliate
  • Firewall che blocca connessioni SMTP in uscita
  • Provider email che richiede passaggi di autenticazione aggiuntivi

Verifica che le impostazioni in ./bwdata/env/global.override.env corrispondano esattamente alla documentazione del tuo provider. Anche piccoli refusi in hostname o porta interrompono l’invio.

Dopo aver corretto le impostazioni SMTP, riavvia Bitwarden e riprova.

Bitwarden vs Vaultwarden (la scelta degli utenti Docker)

Vaultwarden è un’implementazione non ufficiale e mantenuta dalla community del server Bitwarden, scritta in Rust.

Non è affiliata a Bitwarden Inc., ma è compatibile con tutti i client ufficiali di Bitwarden. Usi le stesse estensioni del browser, app mobili e applicazioni desktop. La differenza è tutta lato server.

Perché gli utenti scelgono Vaultwarden

  • Minori risorse necessarie. Vaultwarden gira in un unico container leggero che richiede meno di 100MB di RAM. La versione ufficiale di Bitwarden usa più container e richiede almeno 2GB. Se lo esegui su un VPS piccolo o su Raspberry Pi, Vaultwarden ha più senso.
  • Setup più semplice. Un solo container significa meno componenti in gioco. Niente container separati per database o web. Scarichi un’immagine, configuri un container e hai finito.
  • Alcune funzioni premium senza licenza a pagamento. Vaultwarden abilita funzionalità come allegati e accesso di emergenza che su Bitwarden ufficiale richiedono un abbonamento premium.

Contro di Vaultwarden

  • È un progetto community. Gli aggiornamenti arrivano da volontari, non da un’azienda con staff di supporto dedicato.
  • Nessun supporto ufficiale. Bitwarden Inc. non ti aiuterà con problemi di Vaultwarden. Sei da solo con forum e issue su GitHub.
  • Possibili problemi di compatibilità. Quando Bitwarden rilascia nuove funzionalità, Vaultwarden deve adeguarsi. Di solito c’è un ritardo prima che la nuova funzionalità funzioni.

Quale dovresti usare?

Usa Bitwarden ufficiale se vuoi supporto enterprise, compatibilità garantita con tutte le funzioni e il supporto dell’azienda che sviluppa i client. I requisiti di risorse contano meno se sei su un VPS dimensionato correttamente.

Scegli Vaultwarden se lavori con hardware limitato, vuoi un setup più semplice o ti servono funzioni premium senza pagare. Tieni solo presente che stai scambiando il supporto ufficiale con l’efficienza delle risorse.

Entrambi funzionano bene per il self-hosting e proteggono le password con la stessa cifratura attesa dai client.

Best practice di sicurezza di base

È ovvio, ma Bitwarden conserva le tue password, quindi ti serve protezione oltre alla sola cifratura. Ecco alcune best practice da seguire.

Tieni aggiornato il server. Le patch di sicurezza sono importanti, quindi esegui spesso gli update. Ecco un comando per farlo:

sudo apt update && sudo apt upgrade -y

Puoi impostare aggiornamenti di sicurezza automatici così che le patch critiche vengano installate senza intervento manuale. Su Ubuntu, installa unattended-upgrades:

sudo apt install unattended-upgrades -y
sudo dpkg-reconfigure --priority=low unattended-upgrades

Restringi l’accesso al pannello admin. L’interfaccia admin di Bitwarden è su /admin e usa un token separato per l’autenticazione. Genera un token robusto durante l’installazione e conservalo in un posto sicuro. Evita, se puoi, di esporre il pannello admin a Internet pubblica.

Se ti serve accesso admin da remoto, usa tunneling SSH o una VPN invece di lasciare /admin accessibile pubblicamente.

Usa HTTPS ovunque. Non disattivare mai HTTPS né ignorare gli avvisi sui certificati. Se i certificati non funzionano, risolvi il problema invece di aggirarlo. I client Bitwarden rifiutano di connettersi via HTTP per un buon motivo.

Monitora i rilasci di Bitwarden. Iscriviti ai release su GitHub di Bitwarden o controlla il loro blog per aggiornamenti di sicurezza. Quando esce una nuova versione, leggi le note di rilascio prima di aggiornare per capire cosa è cambiato.

Abilita l’autenticazione a due fattori sul tuo account della cassaforte. Anche se qualcuno ruba la password principale, la 2FA blocca l’accesso non autorizzato. Usa un’app di autenticazione o una chiave hardware.

Usa un firewall. Per riferimento, ecco come configurare UFW per consentire solo le porte necessarie:

sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable

Blocca tutto il resto di default.

Controlla ogni tanto i log per attività insolite. Cerca tentativi di login falliti o chiamate API inaspettate:

sudo docker logs bitwarden-api | grep -i "failed\\|error"

Come vedi, self-hostare Bitwarden significa dover intervenire di tanto in tanto. È il prezzo del pieno controllo.

Conclusione

Docker rende semplice il self-hosting di Bitwarden e non ti serve un’infrastruttura enterprise.

Lo script di installazione ufficiale fa tutto per te. Ottieni aggiornamenti automatici, gestione certificati e una cassaforte funzionante in meno di un’ora: a me ha richiesto circa 15 minuti, compresa la creazione dell’istanza di calcolo e il setup DNS. La maggior parte degli utenti non ha bisogno di altro rispetto a quanto coperto in questo articolo.

Inizia con il setup base su un singolo server. Prendi confidenza con backup, aggiornamenti e troubleshooting di base prima di aggiungere reverse proxy, database esterni o setup ad alta disponibilità. Queste configurazioni avanzate risolvono problemi che probabilmente non hai ancora.

Se non vuoi affidare le tue password a terze parti, questa è la strada giusta. Ma è anche importante non complicare troppo il setup rischiando di rompere qualcosa. Esegui il deployment Docker ufficiale, fai backup regolari e avrai un password manager solido sotto il tuo controllo.

Pronto a imparare di più su Docker? Inizia con il nostro corso Containerization and Virtualization Concepts e poi vedi tutto in azione con Docker and Kubernetes.

Dario Radečić

Autore

Dario Radečić

Senior Data Scientist con base in Croazia. Top Tech Writer con oltre 700 articoli pubblicati, per più di 10 milioni di visualizzazioni. Autore del libro Machine Learning Automation with TPOT.

FAQs

Come posso garantire l’alta disponibilità per la mia istanza self-hosted di Bitwarden?

L’alta disponibilità richiede l’esecuzione di più istanze di Bitwarden dietro un load balancer con un database esterno condiviso come PostgreSQL o MySQL. Dovrai configurare ogni istanza affinché si connetta allo stesso database e utilizzi storage condiviso per gli allegati. Per la maggior parte delle installazioni personali e di piccoli team, backup regolari e una procedura di ripristino documentata offrono protezione adeguata senza la complessità di un’architettura HA.

Quali sono le best practice per configurare SMTP in Bitwarden?

Usa password per app invece della password email normale e verifica che le impostazioni SMTP corrispondano esattamente alla documentazione del tuo provider. Dopo la configurazione, testa sempre l’invio richiedendo un reset della password o usando la funzione di test del pannello admin. Conserva le credenziali SMTP in modo sicuro nel file global.override.env e limita i permessi del file per impedire accessi non autorizzati.

Come risolvo un errore 502 Bad Gateway in Bitwarden?

Controlla se tutti i container sono in esecuzione con sudo docker ps e verifica se qualcuno è in stato "Restarting". Esamina i log dei container nginx e API usando sudo docker logs bitwarden-nginx e sudo docker logs bitwarden-api per identificare il servizio che fallisce. Le cause comuni includono il container API che non parte per problemi di connessione al database, memoria insufficiente o problemi di certificati che bloccano il reverse proxy.

Posso usare porte server personalizzate con Bitwarden?

Sì, modifica ./bwdata/config.yml e cambia http_port e https_port con i valori che preferisci, ad esempio 8080 e 8443. Dopo aver cambiato le porte, riavvia Bitwarden con sudo ./bitwarden.sh restart. Ricorda che usando porte non standard dovrai includere il numero di porta nell’URL del dominio quando accedi alla cassaforte.

Come abilito il logging su syslog in Bitwarden?

I container Docker di Bitwarden registrano su stdout/stderr per impostazione predefinita, che Docker cattura automaticamente. Puoi inoltrare questi log a syslog configurando il logging driver di Docker nelle impostazioni del container o usando uno strumento di aggregazione log come Fluentd o Logstash. Per una semplice integrazione con syslog, usa il logging driver syslog di Docker aggiungendo --log-driver=syslog alla configurazione del container, anche se ciò richiede la modifica manuale del file Docker Compose.

Argomenti

Correlato