Upload files to "/"

This commit is contained in:
2026-03-06 16:06:28 +01:00
commit f3709ee1ba
3 changed files with 258 additions and 0 deletions

218
README.md Normal file
View 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
View 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
View 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