Files
vaultwarden/README.md
2026-03-06 16:06:28 +01:00

219 lines
6.0 KiB
Markdown

# 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.