From f3709ee1ba3c1f018203792cf6e1382b9951ffcb Mon Sep 17 00:00:00 2001 From: francesco Date: Fri, 6 Mar 2026 16:06:28 +0100 Subject: [PATCH] Upload files to "/" --- README.md | 218 +++++++++++++++++++++++++++++++++++++++++++++ docker-compose.yml | 27 ++++++ env.example | 13 +++ 3 files changed, 258 insertions(+) create mode 100644 README.md create mode 100644 docker-compose.yml create mode 100644 env.example diff --git a/README.md b/README.md new file mode 100644 index 0000000..74b67eb --- /dev/null +++ b/README.md @@ -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. diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..3d37d5b --- /dev/null +++ b/docker-compose.yml @@ -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 \ No newline at end of file diff --git a/env.example b/env.example new file mode 100644 index 0000000..5d88ec3 --- /dev/null +++ b/env.example @@ -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 \ No newline at end of file