Files
towercontrol/data
Julien Froidefond 08f3fb6e85 chore(docker): update database path and permissions in Docker configuration
- Modified docker-compose.yml to change DATABASE_URL path for consistency.
- Updated Dockerfile to copy Prisma schema and set a temporary DATABASE_URL for client generation.
- Enhanced CMD to ensure proper permissions for the data directory and user switching during application startup.
- Changed README.md file permissions to executable.
2025-10-31 14:00:50 +01:00
..

📁 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 :

# 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

# Créer une sauvegarde manuelle
pnpm run backup:create

# Lister les sauvegardes
pnpm run backup:list

# Voir la configuration
pnpm run backup:config

# Restaurer une sauvegarde (dev uniquement)
pnpm 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 :

# Taille du dossier data
du -sh data/

# Taille des sauvegardes
du -sh data/backups/

# Nombre de sauvegardes
ls -1 data/backups/ | wc -l