Se vuoi portare Bitwarden su Ubuntu senza trasformare l’installazione in un esercizio di archeologia, la strada più solida è quella ufficiale con Docker e Docker Compose. Funziona bene su un server dedicato o su una VM con risorse decenti, ed è la scelta più sensata quando ti serve un vault password gestito in casa, con accesso web, API e servizi accessori già impacchettati in modo coerente.
Qui l’obiettivo non è solo “farlo partire”, ma farlo partire in modo controllabile: hostname corretto, HTTPS, persistenza dei dati, aggiornamenti ordinati e rollback possibile. Se uno di questi pezzi manca, Bitwarden diventa fragile molto in fretta. Il punto più importante è semplice: prima sistemi l’infrastruttura minima, poi fai girare l’applicazione.
Prerequisiti da verificare prima di installare Bitwarden
Bitwarden self-hosted non è un pacchetto “installo e dimentico”. Prima di lanciare lo script ufficiale, controlla questi punti:
- Ubuntu aggiornato, meglio una LTS recente.
- Un nome host pubblico o comunque risolvibile, ad esempio
vault.example.it. - Accesso amministrativo al server.
- Porta 80 e 443 raggiungibili dall’esterno, se vuoi usare Let’s Encrypt.
- Almeno qualche GB di RAM libera e spazio disco sufficiente per dati, log e database.
Se il server è dietro NAT o proxy, verifica in anticipo che il traffico in ingresso venga inoltrato correttamente. Un errore classico è installare tutto su un host che dall’esterno non è raggiungibile, poi inseguire certificati e callback che non potranno mai funzionare.
Per capire lo stato della macchina, puoi partire da verifiche banali ma utili:
lsb_release -a
hostname -f
free -h
df -h
ss -tulpn | grep -E ':(80|443)\s'Se hostname -f non restituisce il nome FQDN previsto, fermati: Bitwarden userà quell’identità per costruire URL, certificati e link interni. Correggere dopo si può, ma costa tempo e aumenta il rischio di incongruenze.
Installazione di Docker su Ubuntu
La documentazione Bitwarden si appoggia a Docker. Su Ubuntu conviene installarlo dai repository ufficiali di Docker, non da pacchetti vecchi del sistema, così eviti versioni datate e incompatibilità strane con Compose.
Sequenza tipica:
sudo apt update
sudo apt install -y ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-pluginVerifica che Docker risponda e che il plugin Compose sia disponibile:
docker version
docker compose versionSe vuoi evitare di usare sempre sudo, puoi aggiungere il tuo utente al gruppo docker. È comodo, ma va trattato come un privilegio serio: chi può parlare con il demone Docker, di fatto, ha capacità amministrative molto ampie sul sistema.
sudo usermod -aG docker $USERDisconnettiti e rientra nella sessione, poi controlla con groups. Se il server è condiviso o hardenizzato, valuta di lasciare l’uso di sudo invece di allargare i permessi inutilmente.
Scaricare lo script ufficiale di Bitwarden
Bitwarden mette a disposizione uno script di installazione che prepara i file necessari, crea la struttura dei container e guida la configurazione iniziale. È il metodo più lineare per una installazione self-hosted standard.
In una directory di lavoro, scarica l’installer:
mkdir -p /opt/bitwarden
cd /opt/bitwarden
curl -Lso bitwarden.sh https://func.bitwarden.com/api/dl/?app=self-host&platform=linuxRendi eseguibile lo script e avvialo in modalità installazione:
chmod +x bitwarden.sh
./bitwarden.sh installA questo punto ti verranno chiesti alcuni dati fondamentali, in particolare il dominio. Inserisci il nome pubblico con cui vuoi raggiungere il servizio, ad esempio vault.example.it. Questo valore va pensato bene, perché influenza URL, certificati e configurazione generale.
Se non hai ancora un dominio correttamente puntato al server, non andare avanti a caso. Prima crea o correggi il record DNS, poi verifica la risoluzione con un controllo semplice:
dig +short vault.example.itIl risultato atteso è l’IP pubblico del server. Se non coincide, il certificato non verrà emesso o comunque non sarà raggiungibile come previsto.
Configurazione del dominio e del certificato TLS
Per un vault password non ha senso esporre l’interfaccia in chiaro. La configurazione standard prevede HTTPS con certificato valido. Se il server è esposto direttamente su Internet e le porte 80 e 443 sono libere, l’installer può gestire Let’s Encrypt in modo abbastanza lineare.
Il controllo di base è questo: il dominio deve puntare all’host, il firewall deve lasciar passare il traffico, e nessun reverse proxy a monte deve riscrivere male gli header. Se hai già un proxy esterno, la configurazione cambia e va pensata in modo coerente con il resto dello stack.
Se usi UFW, consenti il traffico necessario:
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw status verboseAttenzione al blast radius: aprire queste porte espone il servizio verso l’esterno. Il rollback è semplice, ma va fatto con criterio:
sudo ufw delete allow 80/tcp
sudo ufw delete allow 443/tcpSe il certificato non viene emesso, la causa più frequente è una di queste: DNS sbagliato, porta 80 non raggiungibile, oppure hostname configurato in modo incoerente. In quel caso controlla i log dell’installer e la configurazione del dominio prima di insistere con riavvii a vuoto.
Struttura delle directory e persistenza dei dati
La persistenza è il punto che separa un’installazione seria da una prova temporanea. Bitwarden salva configurazione, database e dati applicativi in una directory locale del progetto. Se perdi quella directory, perdi la continuità del servizio.
In genere troverai una struttura simile sotto /opt/bitwarden o nella directory in cui hai lanciato l’installer. I punti da tenere d’occhio sono:
- file di configurazione generale;
- database e backup locali;
- certificati e chiavi TLS;
- log dei container;
- dati degli allegati e dei servizi accessori.
Prima di cambiare qualcosa, fai una copia della configurazione. È il minimo sindacale per avere un rollback pulito.
cp -a /opt/bitwarden /opt/bitwarden.backup.$(date +%F)Se la directory è diversa, usa quella reale. Non dare per scontato il path: verifica con pwd e con il contenuto della cartella prima di toccare file importanti.
Avvio iniziale dei container Bitwarden
Dopo l’installazione, il passo successivo è il primo avvio. È qui che si capisce subito se rete, DNS, TLS e risorse locali sono allineati.
./bitwarden.sh startPer controllare lo stato dei container usa Docker direttamente:
docker ps
docker compose psIl risultato atteso è una serie di container in stato Up. Se uno o più servizi escono subito, il problema è spesso visibile nei log. Non partire con modifiche casuali: leggi prima l’errore reale.
docker logs --tail=100 bitwardenSe il container principale non è nominato esattamente bitwarden, usa i nomi effettivi restituiti da docker ps. L’importante è osservare l’errore, non indovinare il comando.
Verificare che l’interfaccia risponda correttamente
Quando il servizio è in piedi, il controllo più utile è una richiesta HTTP verso il dominio configurato. Non fermarti alla sola presenza dei container: verifica davvero il percorso utente.
curl -I https://vault.example.itIl comportamento corretto è una risposta 200 o un redirect atteso verso la pagina di login. Se ottieni errore di certificato, 502, 503 o timeout, il problema è a monte o nel reverse proxy.
Se vuoi controllare anche il certificato presentato dal server:
openssl s_client -connect vault.example.it:443 -servername vault.example.it < /dev/null | openssl x509 -noout -subject -issuer -datesQui cerchi tre cose: soggetto corretto, issuer attendibile e date coerenti. Se il certificato è scaduto o non corrisponde al dominio, l’accesso sicuro va sistemato prima di coinvolgere gli utenti.
Gestione degli aggiornamenti senza rompere il servizio
Gli aggiornamenti di Bitwarden vanno trattati come un change controllato, non come un click impulsivo. Prima leggi le note di rilascio, poi fai un backup, poi aggiorni. Saltare uno di questi passaggi è il modo più rapido per complicarsi la vita.
La sequenza prudente è questa:
- Verifica lo stato attuale con
docker pse annota eventuali container già degradati. - Fai un backup della directory applicativa e, se presente, del database.
- Avvia l’aggiornamento secondo la procedura ufficiale dello script Bitwarden.
- Controlla i log del deploy e la raggiungibilità HTTPS.
- Solo dopo valida l’accesso utente e le funzioni critiche.
Se qualcosa va storto, il rollback più pulito è ripristinare la directory salvata prima del cambio e riportare i container alla versione precedente. Il dettaglio preciso dipende dalla versione installata, ma il principio non cambia: senza backup non c’è rollback serio, solo speranza.
Backup e ripristino: la parte che conta davvero
Per un sistema che gestisce credenziali, il backup non è opzionale. Non basta copiare “qualche file”: devi sapere cosa contiene la tua installazione e come rimetterla in piedi in tempi ragionevoli.
La strategia minima è questa:
- snapshot o copia della directory Bitwarden;
- backup del database se separato;
- conservazione sicura dei certificati e della configurazione;
- test periodico del ripristino su un host di prova.
Un backup che non hai mai verificato è solo un file in più da archiviare. Se vuoi essere serio, prepara almeno un ambiente di test dove provare un restore parziale o completo. Anche una verifica di avvio con dati fittizi ti dice molto più di una semplice copia su disco.
Problemi frequenti e come leggerli in fretta
Quando Bitwarden non parte o non risponde, i colpevoli più comuni sono sempre gli stessi. L’ordine giusto di indagine evita di perdere tempo su ipotesi fantasiose.
- DNS sbagliato: il dominio non punta al server. Falsifichi subito con
dig +short vault.example.it. - Porta chiusa o firewall: il servizio è vivo ma irraggiungibile da fuori. Falsifichi con
ss -tulpne con un test da client esterno. - Certificato o TLS non coerenti: HTTPS va in errore o il browser segnala mismatch. Falsifichi con
openssl s_cliente controllando i log. - Container in crash: il servizio principale si riavvia in loop. Falsifichi con
docker psedocker logs.
La regola pratica è semplice: prima osserva, poi modifica. Riavviare tutto senza leggere i log spesso peggiora solo il rumore, non il problema.
Hardening minimo per un’installazione sensata
Una volta funzionante, il servizio va protetto. Non serve inventarsi un fortino, ma almeno alcune buone abitudini sono obbligatorie.
- Usa un account amministrativo forte e non condiviso.
- Limita l’esposizione esterna solo alle porte necessarie.
- Mantieni Ubuntu e Docker aggiornati con cadenza regolare.
- Controlla i log di accesso e i tentativi anomali.
- Se possibile, aggiungi un livello di protezione lato rete o VPN per l’accesso amministrativo al server.
Non lasciare credenziali, token o chiavi in chiaro in file di appunti o script improvvisati. Se devi documentare una procedura interna, redigi i segreti e conserva solo i riferimenti necessari al recupero sicuro.
Quando conviene fermarsi e ricontrollare la base
Se l’installazione non si comporta come previsto, non forzare il sistema a colpi di riavvio. Fermati e ricontrolla l’ordine delle dipendenze: DNS, rete, HTTPS, Docker, permessi, poi applicazione. È quasi sempre lì che si trova il punto debole.
In pratica, una installazione Bitwarden su Ubuntu ben fatta è una somma di dettagli noiosi, ma quelli giusti: nome host coerente, container stabili, backup presenti e aggiornamenti governati. Se questi elementi sono in ordine, il resto diventa manutenzione ordinaria, non emergenza continua.
Commenti (0)
Nessun commento ancora.
Segnala contenuto
Elimina commento
Eliminare definitivamente questo commento?
L'azione non si può annullare.