Table des matières

Backup Database

Je teste actuellement une application pour gérer le backup de divers base de données

Databasus

https://github.com/databasus/databasus

Développé en Go

Interface un peu vieillote, n’est pas très optimisé et pas très propre dans le code.

Un fichier .env à la racine du système /.env, 2.6Go de données dans le /home/user/go

DBackup

https://github.com/Skyfay/DBackup

Développé en TypeScript

Pour l’instant, pas d’agent, pas de tunnel ssh possible. Mais ça fonctionne sur ma vieille debian. Le développeur est actif, les backups sont accessible facilement.

Sur les 3 applis testé, je valide.

Databasement

https://github.com/David-Crty/databasement

Développé en laravel

Galère pour configurer le ssh vers une vieille debian. Après avoir configurer un .ssh/config dans les container databasement et databasement-worker et ajouté les clés à la main

Le PUID et PGID du .env n’est pas pris en compte dans le databasement-worker, obligé de modifier la command de lancement

services:
  app:
    image: davidcrty/databasement:1
    container_name: databasement
    restart: unless-stopped
    ports:
      - "2226:2226"
    env_file: .env
    volumes:
      - ./data:/data
      - ./backups:/backups
      - ./ssh_config:/home/application/.ssh
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:2226/health"]
      interval: 10s
      timeout: 5s
      retries: 5

  worker:
    image: davidcrty/databasement:1
    container_name: databasement-worker
    restart: unless-stopped
    command: sh -c "groupmod -o -g 1001 application && usermod -o -u 1001 application && php artisan db:wait --check-migrations && php artisan queue:work --queue=backups,default --tries=3 --timeout=3600 --sleep=3 --max-jobs=1000"
    env_file: .env
    volumes:
      - ./data:/data
      - ./ssh_config:/home/application/.ssh
    depends_on:
      app:
        condition: service_healthy

Une fois cette étape fastidieuse réussi, le mariadb-dump ne fonctionne pas, car j’ai du mysql. Dommage d’écrire en gros “Mysql/Mariadb”.

Contrairement à DBackup qui lui fait bien la distinction entre mysql et mariadb et qui fonctionne sur ma vieille debian.

Databasement intègre un agent, mais c’est dommage qu’il faille installer docker pour le faire fonctionner. Surtout que pour lancer l’agent, le container télécharge toute l’application juste pour exécuter l’agent. Il faudrait un agent executable autonome.