feat: add automated backup script with Discord notifications

Daily backup at 19h, zips data/ to backup/, keeps 2 max, notifies via Discord webhook.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-02 09:50:56 +02:00
parent f732c18a55
commit f0ff1ec42b
3 changed files with 84 additions and 18 deletions

View File

@@ -51,32 +51,33 @@ docker compose pull
docker compose up -d
```
## Sauvegarde
## Sauvegarde automatique
Le dossier `./data` contient toutes les donnees :
- `db.sqlite3` : base de donnees (comptes, mots de passe chiffres)
- `attachments/` : fichiers joints
- `sends/` : fichiers Send
- `config.json` : configuration
- `rsa_key.pem` : cle RSA du serveur
Un script de backup automatique est inclus : `backup-vaultwarden.sh`.
### Exporter une sauvegarde
- **Frequence** : tous les jours a 19h (cron)
- **Format** : zip du dossier `data/` dans `backup/`
- **Retention** : 2 backups max (rotation automatique)
- **Notification** : Discord via webhook
### Lancer manuellement
```bash
# Arreter le conteneur pour eviter la corruption de la BDD
docker compose down
# Copier le dossier data
cp -r ./data ./data_backup_$(date +%Y%m%d)
# Relancer
docker compose up -d
./backup-vaultwarden.sh
```
### Compresser pour transfert
### Installer le cron
```bash
tar czf vaultwarden_backup_$(date +%Y%m%d).tar.gz ./data
crontab -e
# Ajouter :
0 19 * * * /usr/bin/bash /home/matt/vaultwarden/backup-vaultwarden.sh >> /home/matt/vaultwarden/logs/cron_vaultwarden.log 2>&1
```
### Sauvegarde manuelle
```bash
zip -r vaultwarden-backup-$(date +%Y%m%d).zip ./data
```
## Restauration / Migration
@@ -126,9 +127,12 @@ Tout est restaure : comptes, mots de passe, fichiers joints.
.
├── docker-compose.yml # Definition du service Docker
├── setup-vaultwarden-https.sh # Script de configuration NGINX + HTTPS
├── backup-vaultwarden.sh # Script de backup automatique
├── .env # Variables d'environnement (non versionne)
├── .env.example # Exemple de configuration
├── data/ # Donnees Vaultwarden (non versionne)
├── backup/ # Backups zip (non versionne)
├── logs/ # Logs de backup (non versionne)
└── README.md
```