6.0 KiB
Vaultwarden Docker Setup
Configurazione Docker per Vaultwarden, un'alternativa self-hosted e leggera a Bitwarden scritta in Rust.
📋 Descrizione
Questo progetto fornisce una configurazione Docker Compose pronta all'uso per eseguire Vaultwarden, un server compatibile con Bitwarden che permette di gestire password e dati sensibili in modo sicuro sul proprio server.
🚀 Caratteristiche
- ✅ Deploy semplice con Docker Compose
- ✅ Configurazione SMTP per l'invio di email
- ✅ WebSocket abilitato
- ✅ Volumi persistenti per dati e log
- ✅ Registrazioni e inviti abilitati
- ✅ Configurazione tramite variabili d'ambiente
📦 Prerequisiti
- Docker (versione 20.10 o superiore)
- Docker Compose (versione 1.29 o superiore)
- Un dominio puntato al server (opzionale ma consigliato per HTTPS)
🔧 Installazione
-
Clona o scarica il repository
-
Crea il file di configurazione
Copia il file di esempio e personalizzalo:
cp env.example .env -
Configura le variabili d'ambiente
Modifica il file
.envcon i tuoi parametri:CONTAINER_NAME=pycovault # Nome del container Docker RESTART_POLICY=always # Politica di riavvio HTTP_PORT=86 # Porta HTTP dove esporre il servizio DOMAIN=tuodominio.com # Il tuo dominio (senza https://) # Configurazione SMTP SMTP_HOST=smtp.tuoserver.com # Server SMTP SMTP_PORT=587 # Porta SMTP (587 per TLS, 465 per SSL) SMTP_FROM=noreply@tuodominio.com # Email mittente SMTP_FROM_NAME=Vaultwarden # Nome visualizzato SMTP_USERNAME=tuo_username # Username SMTP SMTP_PASSWORD=tua_password # Password SMTP SMTP_SECURITY=starttls # Tipo di sicurezza: starttls o force_tls SMTP_AUTH_MECHANISM=Login # Meccanismo di autenticazione SMTP_DEBUG=false # Debug SMTP (true/false) -
Avvia il container
docker-compose up -d
📂 Struttura Directory
.
├── docker-compose.yml # Configurazione Docker Compose
├── env.example # Template variabili d'ambiente
├── .env # Configurazione personale (da creare)
├── secure/ # Directory dati Vaultwarden (creata automaticamente)
└── log/ # Directory log (creata automaticamente)
🌐 Accesso
Dopo l'avvio, Vaultwarden sarà accessibile su:
- HTTP:
http://localhost:86(o la porta configurata inHTTP_PORT)
🔐 Configurazione HTTPS (Consigliato)
Per la produzione è fortemente consigliato utilizzare HTTPS. Opzioni:
- Reverse Proxy (nginx, Apache, Caddy)
- Traefik con certificati Let's Encrypt automatici
- Cloudflare Tunnel
Esempio con nginx:
server {
listen 443 ssl http2;
server_name tuodominio.com;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
location / {
proxy_pass http://localhost:86;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
location /notifications/hub {
proxy_pass http://localhost:86;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
🛠️ Comandi Utili
# Avvia i container
docker-compose up -d
# Ferma i container
docker-compose down
# Visualizza i log
docker-compose logs -f
# Riavvia il servizio
docker-compose restart
# Aggiorna l'immagine
docker-compose pull
docker-compose up -d
# Verifica stato container
docker-compose ps
🔄 Backup
È importante fare backup regolari della directory secure/ che contiene tutti i dati:
# Backup manuale
tar -czf vaultwarden-backup-$(date +%Y%m%d).tar.gz secure/
# Ripristino
tar -xzf vaultwarden-backup-YYYYMMDD.tar.gz
⚙️ Configurazioni Avanzate
Disabilitare le Registrazioni
Modifica il docker-compose.yml:
- SIGNUPS_ALLOWED=false
Abilitare Admin Panel
Aggiungi nel docker-compose.yml:
- ADMIN_TOKEN=token_sicuro_generato_casualmente
Accedi su: https://tuodominio.com/admin
Limitare le Registrazioni per Dominio
- SIGNUPS_DOMAINS_WHITELIST=tuodominio.com,altrodominio.com
🐛 Troubleshooting
Le email non vengono inviate
- Verifica le credenziali SMTP nel file
.env - Controlla i log:
docker-compose logs -f - Imposta
SMTP_DEBUG=trueper debug dettagliato - Verifica che la porta SMTP non sia bloccata dal firewall
Impossibile accedere al servizio
- Verifica che il container sia in esecuzione:
docker-compose ps - Controlla che la porta non sia già in uso:
netstat -an | grep 86 - Verifica i log per errori:
docker-compose logs
Errore di permessi sui volumi
# Assicurati che le directory esistano e siano scrivibili
mkdir -p secure log
chmod 755 secure log
📚 Risorse
📝 Licenza
Questo progetto segue la licenza di Vaultwarden. Consulta il repository ufficiale per maggiori dettagli.
⚠️ Note Importanti
- NON condividere il file
.envo committarlo in repository pubblici - Usa sempre HTTPS in produzione
- Fai backup regolari dei dati
- Mantieni aggiornata l'immagine Docker per motivi di sicurezza
🤝 Contributi
Contributi, issue e richieste di funzionalità sono benvenuti!
Nota: Questo è un setup di base. Per ambienti di produzione, considera l'implementazione di ulteriori misure di sicurezza come firewall, fail2ban, e monitoring.