diff --git a/.gitignore b/.gitignore index 79360b4..8cad2f7 100644 --- a/.gitignore +++ b/.gitignore @@ -43,4 +43,5 @@ next-env.d.ts /src/generated/prisma /prisma/dev.db -/data/* +/data/*.db +/data/backups/* diff --git a/data/README.md b/data/README.md new file mode 100644 index 0000000..9807608 --- /dev/null +++ b/data/README.md @@ -0,0 +1,106 @@ +# 📁 Dossier Data - TowerControl + +Ce dossier contient toutes les données persistantes de l'application TowerControl. + +## 📋 Structure + +``` +data/ +├── README.md # Ce fichier +├── prod.db # Base de données production (Docker) +├── dev.db # Base de données développement (Docker) +└── backups/ # Sauvegardes automatiques et manuelles + ├── towercontrol_2025-01-15T10-30-00-000Z.db.gz + ├── towercontrol_2025-01-15T11-30-00-000Z.db.gz + └── ... +``` + +## 🎯 Utilisation + +### En développement local +- La base de données principale est dans `prisma/dev.db` +- Ce dossier `data/` est utilisé uniquement par Docker +- Les sauvegardes locales sont dans `backups/` (racine du projet) + +### En production Docker +- Base de données : `data/prod.db` ou `data/dev.db` +- Sauvegardes : `data/backups/` +- Tout ce dossier est mappé vers `/app/data` dans le conteneur + +## 🔧 Configuration + +Les chemins sont configurés via les variables d'environnement : + +```bash +# Base de données +DATABASE_URL="file:./data/prod.db" + +# Chemin de la base pour les backups +BACKUP_DATABASE_PATH="./data/prod.db" + +# Dossier de stockage des sauvegardes +BACKUP_STORAGE_PATH="./data/backups" +``` + +## 🗂️ Fichiers + +### Bases de données SQLite +- **prod.db** : Base de données de production +- **dev.db** : Base de données de développement Docker +- Format : SQLite 3 +- Contient : Tasks, Tags, User Preferences, Sync Logs, etc. + +### Sauvegardes +- **Format** : `towercontrol_YYYY-MM-DDTHH-mm-ss-sssZ.db.gz` +- **Compression** : gzip +- **Rétention** : Configurable (défaut: 5 sauvegardes) +- **Fréquence** : Configurable (défaut: horaire) + +## 🚀 Commandes utiles + +```bash +# Créer une sauvegarde manuelle +npm run backup:create + +# Lister les sauvegardes +npm run backup:list + +# Voir la configuration +npm run backup:config + +# Restaurer une sauvegarde (dev uniquement) +npm run backup:restore filename.db.gz +``` + +## ⚠️ Important + +- **Ne pas modifier** les fichiers `.db` directement +- **Ne pas supprimer** ce dossier en production +- **Sauvegarder régulièrement** le contenu de ce dossier +- **Vérifier l'espace disque** disponible pour les sauvegardes + +## 🔒 Sécurité + +- Ce dossier est ignoré par Git (`.gitignore`) +- Contient des données sensibles en production +- Accès restreint recommandé sur le serveur +- Chiffrement recommandé pour les sauvegardes externes + +## 📊 Monitoring + +Pour surveiller l'espace disque : + +```bash +# Taille du dossier data +du -sh data/ + +# Taille des sauvegardes +du -sh data/backups/ + +# Nombre de sauvegardes +ls -1 data/backups/ | wc -l +``` + +--- + +📚 **Documentation complète** : [BACKUP.md](../BACKUP.md) diff --git a/docker-compose.yml b/docker-compose.yml index aff9397..a0efd6d 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -8,8 +8,8 @@ services: - "3006:3000" environment: NODE_ENV: production - DATABASE_URL: "file:../data/prod.db" # Prisma - BACKUP_DATABASE_PATH: "./data/prod.db" # Base de données à sauvegarder + DATABASE_URL: "file:../data/dev.db" # Prisma + BACKUP_DATABASE_PATH: "./data/dev.db" # Base de données à sauvegarder BACKUP_STORAGE_PATH: "./data/backups" # Dossier des sauvegardes TZ: Europe/Paris volumes: