I’ve just released version 0.4.0 of Obnam, my backup program. It’s still an alpha version and only suitable for a light trial of a modest amount of data that isn’t sensitive. I would welcome any feedback you may have.

Release notes follow.

Version 0.4.0, released 2021-06-06

Experimental version

This is an experimental release, and is not meant to be relied on for recovery of important data. The purpose of this release is to get new features into the hands of intrepid people who want to try out new things.

Breaking changes

This release introduces use of encryption in Subplot. Encryption is not optional, and the new obnam init command must always be used before the first backup to generate an encryption key.

Starting with this version of Obnam, there is no support at all for cleartext backups any more. A backup, or backup repository, made with a previous version of Obnam will not work with this version: you can’t list backups in a repository, you can’t restore a backup, and you can’t make a new backup. You need to start over from scratch, by emptying the server’s chunk directory. Eventually, Obnam will stop having such breaking, throw-away-everything changes, but it will take time to build that functionality.

Note: this version add only a very rudimentary approach to encryption. It is only meant to protect the backups from the server operator snooping via the server file system. It doesn’t protect against most other threats, including the server operator replacing parts of backups on the server. Future versions of Obnam will add more protection.

New or changed features

  • Obnam now by default excludes directories that are marked with a CACHEDIR.TAG file. Set exclude_cache_tag_directories to false in the configuration file to disable the feature. See the Cache Directory Tagging Specification for details of the tag file.
  • You can now use tilde notation in the configuration file, in fields for specifying backup root directories or the log file. This makes it easier to files relative to the user’s home directory:

  • Alexander Batischev changed the code that queries the SQL database to return an iterator, instead of an array of result. This means that if, for example, a backup generation has a very large number of files, Obnam no longer needs to keep all of them in memory at once.

  • Various error messages are now clearer and more useful. For example, if there is a problem reading a file, the name of the file is included in the error message.

Internal changes

  • Alexander Batischev added support for GitLab CI, which means that changes are tested automatically before they are merged. This will make development a little smoother in the future.

Changes to documentation

  • Tigran Zakoyan made a logo for Obnam. It is currently only used on the website, but will find more use later. For example, some stickers could be made.

Thank you

Several people have helped with this release, with changes or feedback. I want to especially mention the following, in order by first name, with apologies to anyone I have inadvertently forgotten: Alexander Batischev, Daniel Silverstone, Neal Walfield, Tigran Zakoyan.