Skip to main content

One S3 backup, encrypted on the fly.

Project description

Description

This tool is used at Seantis to create backups stored on various S3 compatible services using a very limited subset of S3 commands.

This is what you need to know:

  • Spare should not be used in production yet! Use at your own risk.

  • Buckets should be managed by spare exclusively, other files are deleted!

  • Each hostname must have a separate bucket for each backed up path.

  • Spare stores exactly one copy of your data.

  • Files are compressed using LZMA and encrypted on the client using AES-SIV.

  • During upload, spare is limited to one core and less than 100MiB of memory.

  • Duplicated files are stored only once.

  • If you forget your password, you cannot restore your files.

  • Spare is meant to be used with configuration management, the cli is minimal.

  • Python 3.6.2+ is required.

Usage

To install spare:

pip install spare

To set the connection parameters:

export SPARE_ENDPOINT=host
export SPARE_ACCESS_KEY=access-key
export SPARE_SECRET_KEY=secret-key

To backup a folder:

spare create --password my-password --bucket my-bucket --path /my-path

To restore a backup:

spare restore --password my-password --bucket my-bucket --path /my-path

To verify the backup (downloads everything!):

spare verify --password my-password --bucket my-bucket --path /my-path

Run the Tests

Spare uses Minio <https://www.minio.io> to run tests against a real object storage server. As a result it can take a bit for the first test run to complete, as Minio is downloaded and stored in the pytest cache directory:

pip install -e '.[test]'
py.test

Build Status

Build Status

License

spare is released under the MIT license

Changelog

0.2.2 (2018-05-25)

  • Fixes tests. [href]

0.2.1 (2018-05-25)

  • Delay sigterm handling during backup and restore operations. [href]

  • Changes ‘–force’ into a flag. [href]

0.2.0 (2018-05-11)

  • Adds the inode to the snapshot identity to ensure that a newly setup host doesn’t overwrite existing backups. [href]

0.1.3 (2018-05-10)

  • Adds the ability to exclude files from the backup. [href]

0.1.2 (2018-05-10)

  • Increases the download speed during restore operations. [href]

  • Shows a warning when a user/group could not be found during restore. [href]

  • Lowers the timeouts and retry rates. [href]

0.1.1 (2018-05-04)

  • Lowers the number of requests needed to upload data. [href]

0.1.0 (2018-04-26)

  • Initial Release. [href]

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page