Skip to content

sloonz/uback

Repository files navigation

CI status Go Report Card

uback

There are many backup tools out there. Or should I say, there are may backup scripts out there. Most of them will focus on a specific usage (say, backup btrfs snapshots to a sftp server). All of them will have different feature matrices (encryption/incremental backups/pruning) and different means of configuration/deployment.

Situation: there is gogolplex backup tools...

uback try to solve this by defining a simple model of backup producers (called "sources") and backup stores (called "destinations"), and writing the intermediate between them once for all. One can now focus on writing each specific source (tar, mysqldump, btrfs,...) or destination (s3, sftp, local files,...) in a relatively straightforward way. After that, from the point of view of the system administrator, the configuration can be made in a uniform way accros different backup workflows.

Key features are encryption, compression, incremental backups (if the source allow it) and retention policy.

Quickstart and Documentation

All the documentation is in the doc/ directory. You should start by the tutorial and then jump to advanced topics (file format, custom sources, custom destinations, proxying) or the documentation specific to each source or destination.

Supported Sources

Supported Destinations

Current Status and Planned Features

uback is in a preliminary stage, quite lacking feature-wide, but fairly stable with a good test suite. Here is a rough sketch of the roadmap :

0.1

  • Core features:
    • Backups & Incremental Backups
    • Restoration
    • Encryption
    • Compression
    • Pruning/Retention Policy
  • Sources: tar, mariabackup
  • Destinations: local filesystem, S3 compatible object storage
  • Documentation
  • CI/Release Management

0.2 (released)

  • Custom sources
  • Custom destinations

0.3 (released)

  • switch to age for encryption. This will be the first (and hopefully the last) breaking change for the file format and keys format.

0.4 (released)

  • btrfs source
  • btrfs destination
  • remove mariabackup footguns
    • add the option to use a dockerized mariabackup in the restoration process to have an exect version match
    • returns an error when attempting to create an incremental backup based on a full backup created by a different version

0.4.1 (released)

  • Fix a compatibility issue with MariaDB 11

0.5 (released)

  • Proxy support

0.6 (released)

  • Allow multiple public keys per backup

0.6.1 (released)

  • Object storage: allow to customize part size

0.7

  • FTP/SFTP support

0.8

  • Should be suitable for production

1.0

  • Community feedback