Skip to content

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 :