Cloud storage backup utiity (S3 only for now)
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

bkr - simple backups


The goal with bkr is to create a simple and easy to use backup utility that utilizes cloud services as backup storage.

What does bkr do?

bkr only supports S3 as target service at this time. You need to have an AWS account and a S3 bucket for your backups. Set your AWS account credentials and the folder to backup in the bkr.conf file. bkr uploads files from the wanted folders to the bucket. Next time bkr runs it checks for new or changed files and uploads these. bkr does not save copies of changed files, hence it’s rather a synchronization then a backup tool at the moment.

Current state of bkr

bkr is in a very early development stage. Currently it:

  • is rather a synchronization then a backup tool (history/versions are not supported, wanted files are uploaded and when a local file changes the new version is uploaded overwriting the existing online copy)
  • only supports Amazon S3 as backup target service
  • no restore functionality (manual restores are required)
  • very little error handling
  • no scheduling (cron or similar is required)

Future versions might break backwards compatibility.


The easiest installation method is:

  1. Make sure to have Haskell platform installed ( HP 2011.4.0.0 and 2012.2.0.0 is supported at the moment.
  2. From a command line:
  3. Run: $ cabal update
  4. Run: $ cabal install bkr

Set up

All configuration is made in a single configuration file, bkr looks for a configuration file in the following locations:

  1. The first command line argument ($ bkr /path/to/bkr.conf)
  2. In the same folder as the bkr executable (./bkr.conf)
  3. In your home folder named .bkr.conf ($HOME/.bkr.conf)

The easiest way to set up bkr is:

  1. After installation run bkr ($ bkr).
  2. When executed the first time it will create a example configuration file, .bkr.conf, in your home folder ($HOME/.bkr.conf).
  3. Edit the $HOME/.bkr.conf file with your favorite text editor. It should be documented well enough for you to make needed configuration changes, if not please file a bug report.
  4. Run bkr ($ bkr)
  5. Set up bkr to run regularly using, for instance, cron.

Release Notes


This is a fully functioning release but should be seen as a proof-of-concept release. Only basic functionality is implemented, documentation is rather rough, almost no error handling, synchronization rather then backup, no restore, only POSIX, only S3, among other.

Developed and tested on OS X 10.7 (and HP 2011.4.0.0) but should run fine on all POSIX compliant systems. Windows is currently not supported.


Reserved for bug fixes for the 0.1 release.


  • Feature: HP 2012.2.0.0 (GHC 7.4) support.


  • Bug fix: if bkr.conf could not be found bkr failed to create $HOME/.bkr.conf.
  • Bug fix: if the log file location was configured but the log file was missing bkr crashed.
  • Bug fix: missing / after tmp folder location when creating temporal bkrmeta file.

0.2.0 (planned)

  • Windows support.
  • Better documentation.
  • Better error handling:
    • Detect wrong or not configured aws access key id and secret access key, ask and configure.
    • Detect wrong or not configured S3 bucket name, ask and create.
    • Detect not configured folders to backup.
    • Detect not existing folders to backup and warn.
    • Handle gracefully if not permitted to write .bkrmeta file.
  • Activate S3 upload MD5 digest
  • More…