# 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 1. **Clona o scarica il repository** 2. **Crea il file di configurazione** Copia il file di esempio e personalizzalo: ```bash cp env.example .env ``` 3. **Configura le variabili d'ambiente** Modifica il file `.env` con i tuoi parametri: ```env 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) ``` 4. **Avvia il container** ```bash 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 in `HTTP_PORT`) ## πŸ” Configurazione HTTPS (Consigliato) Per la produzione Γ¨ **fortemente consigliato** utilizzare HTTPS. Opzioni: 1. **Reverse Proxy** (nginx, Apache, Caddy) 2. **Traefik** con certificati Let's Encrypt automatici 3. **Cloudflare Tunnel** Esempio con nginx: ```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 ```bash # 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: ```bash # 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`: ```yaml - SIGNUPS_ALLOWED=false ``` ### Abilitare Admin Panel Aggiungi nel `docker-compose.yml`: ```yaml - ADMIN_TOKEN=token_sicuro_generato_casualmente ``` Accedi su: `https://tuodominio.com/admin` ### Limitare le Registrazioni per Dominio ```yaml - 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=true` per 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 ```bash # Assicurati che le directory esistano e siano scrivibili mkdir -p secure log chmod 755 secure log ``` ## πŸ“š Risorse - [Vaultwarden GitHub](https://github.com/dani-garcia/vaultwarden) - [Documentazione Vaultwarden](https://github.com/dani-garcia/vaultwarden/wiki) - [Bitwarden](https://bitwarden.com/) ## πŸ“ Licenza Questo progetto segue la licenza di Vaultwarden. Consulta il repository ufficiale per maggiori dettagli. ## ⚠️ Note Importanti - **NON** condividere il file `.env` o 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.