- Update README.md title and project structure references - Update script headers in install and manage scripts - Update configuration comments in backup.env.sample - Update Restic configuration comment in install script - Maintain consistency across all project documentation 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
Citadel Backup System
Système de sauvegarde automatisé basé sur Restic avec intégration systemd pour services containerisés.
Structure du Projet
citadel/
├── backup.env # Configuration centralisée
├── manage # Interface principale de gestion
├── install # Script d'installation et configuration
├── config/
│ └── restic.conf # Configuration Restic (générée)
└── backup/
├── install-service # Installation timers systemd
├── list-snapshots # Liste des snapshots
├── restore # Restauration
├── service-backup@.service # Template service systemd
└── service-backup@.timer # Template timer systemd
Installation
-
Configuration initiale
# Copier et adapter la configuration cp backup.env.sample backup.env # Éditer backup.env selon votre environnement
-
Installation complète
# Installation automatique (configuration + repository) ./install # Ou étape par étape ./install config # Génération configuration Restic ./install repo # Initialisation repository
-
Installation d'un service
sudo ./manage install <nom_service>
Configuration
Variables principales (backup.env)
BACKUP_USER
: Utilisateur système (défaut: citadel)PROJECT_ROOT
: Racine du projetSERVICES_BASE_DIR
: Répertoire des services à sauvegarderBACKUP_REPOSITORY
: Chemin du repository ResticDEFAULT_BACKUP_SCHEDULE
: Planning par défaut (défaut: --* 03:00:00)
Personnalisation
# Exemple pour un autre utilisateur
export BACKUP_USER="myuser"
export BACKUP_HOME="/home/myuser"
source backup.env
# Puis utiliser normalement
./manage list
Utilisation
Gestion des sauvegardes
# Lister les timers (configuration auto-sourcée)
./manage list
# Statut d'un service
./manage status paperless
# Lancer une sauvegarde manuelle
./manage run paperless
# Voir les logs
./manage logs paperless
# Services disponibles
./manage available
Restauration
# Lister les snapshots
./manage snapshots paperless
# Restaurer en mode test
./manage restore paperless
# Restaurer en production
./manage restore-prod paperless
Architecture
Principes de conception
- Interface unifiée : Toutes les opérations via
./manage
et./install
- Configuration auto-sourcée : Plus besoin de sourcer manuellement
- Scripts protégés : Scripts dans
backup/
non exécutables directement - Sécurité : Mots de passe générés automatiquement, permissions restreintes
Composants
./manage
: Interface principale pour toutes les opérations de sauvegarde./install
: Script d'installation consolidé (config + repository)backup.env
: Configuration centralisée avec variables d'environnementbackup/
: Scripts internes appelés via./manage
uniquement
Développement
Les scripts dans backup/
utilisent la variable CALLED_FROM_MANAGE
pour empêcher l'exécution directe et garantir l'utilisation de l'interface unifiée.
Description
Languages
Shell
100%