Upload files to "/"
This commit is contained in:
218
README.md
Normal file
218
README.md
Normal file
@@ -0,0 +1,218 @@
|
|||||||
|
# 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.
|
||||||
27
docker-compose.yml
Normal file
27
docker-compose.yml
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
services:
|
||||||
|
|
||||||
|
bitwarden:
|
||||||
|
image: vaultwarden/server:latest
|
||||||
|
container_name: ${CONTAINER_NAME}
|
||||||
|
ports:
|
||||||
|
- "${HTTP_PORT}:80"
|
||||||
|
restart: ${RESTART_POLICY}
|
||||||
|
environment:
|
||||||
|
- WEBSOCKET_ENABLED=true
|
||||||
|
- SIGNUPS_ALLOWED=true
|
||||||
|
- INVITATIONS_ALLOWED=true
|
||||||
|
- DOMAIN=https://${DOMAIN}
|
||||||
|
- LOG_FILE=/var/log/docker/bitwarden.log
|
||||||
|
# IMPOSTAZIONI DELLA POSTA ELETTRONICA
|
||||||
|
- SMTP_HOST=${SMTP_HOST}
|
||||||
|
- SMTP_FROM=${SMTP_FROM}
|
||||||
|
- SMTP_FROM_NAME=${SMTP_FROM_NAME}
|
||||||
|
- SMTP_AUTH_MECHANISM=${SMTP_AUTH_MECHANISM}
|
||||||
|
- SMTP_PORT=${SMTP_PORT}
|
||||||
|
- SMTP_DEBUG=${SMTP_DEBUG}
|
||||||
|
- SMTP_USERNAME=${SMTP_USERNAME}
|
||||||
|
- SMTP_PASSWORD=${SMTP_PASSWORD}
|
||||||
|
- SMTP_SECURITY=${SMTP_SECURITY}
|
||||||
|
volumes:
|
||||||
|
- ./secure:/data
|
||||||
|
- ./log:/var/log/docker/:rw
|
||||||
13
env.example
Normal file
13
env.example
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
CONTAINER_NAME=pycovault
|
||||||
|
RESTART_POLICY=always
|
||||||
|
HTTP_PORT=86
|
||||||
|
DOMAIN=_DOMINIO_
|
||||||
|
SMTP_FROM_NAME=_FROM-MAIL-NAME_
|
||||||
|
SMTP_SECURITY=starttls
|
||||||
|
SMTP_AUTH_MECHANISM=Login
|
||||||
|
SMTP_PASSWORD=_MAIL-PASSWORD_
|
||||||
|
SMTP_USERNAME=_MAIL-USERNAME_
|
||||||
|
SMTP_FROM=_FROM-MAIL_
|
||||||
|
SMTP_PORT=_SMTP-PORT_
|
||||||
|
SMTP_HOST=_SMTP-SERVER_
|
||||||
|
SMTP_DEBUG=true
|
||||||
Reference in New Issue
Block a user