219 lines
6.0 KiB
Markdown
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.
|