Introduction
Mini Backup est une solution de sauvegarde conçue pour répondre aux besoins des environnements cloud, multicloud, et des infrastructures domestiques utilisant Docker/Linux. Grâce à sa configuration simple basée sur YAML, il permet de sauvegarder vos bases de données, fichiers, et dossiers tout en chiffrant les données avant de les stocker de manière sécurisée sur des serveurs S3.
Structure du projet
Voici un aperçu des fichiers et dossiers principaux utilisés par Mini Backup :
Directoryapp
- backup-server
- backup-cli
- .env
Directorylogs
- mini-backup.log
Directoryconfig
- config.yml
- server.yml
Directorybackups
- backup_example.gz.enc
Comment ça fonctionne ?
Mini Backup repose sur deux fichiers principaux pour sa configuration :
config.yml: Gère les tâches de sauvegarde.server.yml: Configure le serveur et les espaces de stockage distants.
config.yml
Ce fichier définit les tâches de sauvegarde, depuis leur création locale jusqu’à leur stockage final sur S3. Voici une explication des principaux éléments :
path:local: Chemin temporaire où les données sont sauvegardées, compressées et chiffrées avant leur transfert vers S3.s3: Chemin sur le serveur S3 où les sauvegardes seront stockées.
retention:- Standard : Durée de conservation des sauvegardes dans le stockage principal S3.
- Glacier : Durée de conservation des sauvegardes transférées vers Glacier (pour l’archivage à long terme).
schedule:- Standard : Fréquence des sauvegardes régulières.
- Glacier : Fréquence des transferts vers le stockage d’archivage.
Voici un exemple de configuration avec trois tâches : une pour une base MySQL, une pour un dossier local, et une pour une base MongoDB.
backups: glpi: type: mysql mysql: databases: [ "glpidb", ] host: "localhost" port: "3306" user: "glpi_user" password: "glpi" ssl: "false" path: local: "./backups" s3: "backup/glpi-dev/mysql" retention: standard: days: 14 glacier: days: 365 schedule: standard: "*/50 * * * *" glacier: "0 18 * * 5"
glpi-file: type: folder folder: [ "/home/killian/dev/aidalinfo/backup-tool-go/glpi/data", ] path: local: "./backups" s3: "backup/glpi-dev/folder" retention: standard: days: 14 schedule: standard: "0 18 * * 5" glacier: "0 18 * * 5"
mongo: type: mongo mongo: host: "localhost" port: "27018" user: "root" password: "example" ssl: false path: local: "./backups" s3: "backup/mongo/mongo" retention: standard: days: 14 glacier: days: 365 schedule: standard: "*/60 * * * *"server.yml
Ce fichier gère la configuration du serveur et des espaces de stockage distants. Vous pouvez définir plusieurs endpoints S3 pour assurer une redondance des sauvegardes.
server: env: "${{GO_ENV}}" port: 8080 debug: false log: "./logs/server.log"
rstorage: scaleway1: endpoint: "https://s3.fr-par.scw.cloud" bucket_name: "dev-backup-go" access_key: "${{SCW_ACCESS_KEY}}" secret_key: "${{SCW_SECRET_KEY}}" region: "fr-par" scaleway-backup: endpoint: "https://s3.fr-par.scw.cloud" bucket_name: "dev-backup-go" access_key: "${{SCW_ACCESS_KEY_BACKUP}}" secret_key: "${{SCW_SECRET_KEY_BACKUP}}" region: "fr-par"Démarrer avec Mini Backup
Pour débuter, suivez notre guide de démarrage rapide :