A backup / archiving software that stores your data in a content addressable storage using human readable file formats. It can store its data on the local filesystem or in the cloud. It can optionally encrypt your data.
This project is
go get code.laria.me/petrific
petrific - Having the quality of petrifying or turning into stone; causing petrifaction
petrific is a content-addressable backup/data archival software. It can store your data locally or in the cloud, optionally encrypted using GPG.
It stores your files and directories as objects that are addressed with their cryptographic hash. This deduplicates data and guarantees file integrity. The idea is very similar to Git or Venti. In contrast to these systems, petrific uses human readable and extensible file formats for the objects and uses the SHA3-256 hash instead of SHA1.
You will need the Go compiler, git and GPG installed on your system. After that, installing petrific is as easy as
go get code.laria.me/petrific.
petrific is configured by a TOML file, located at
Here is a commented example config. For more details, consult the documentation of the
config and the
# This config key defines the default storage backend, as defined below default_storage = "local_encrypted" # This defines the location of the cache file (can speed up creating backups; can be left out) cache_path = "~/.cache/petrific.cache" [signing] # Use this GPG key to sign snapshots key = "0123456789ABCDEF0123456789ABCDEF01234567" # The storage.* sections define storage backends. # Every section must contain the key `method`, the other keys depend on the selected method. # For more details see the documentation for the storage package [storage.local] method="local" path="~/.local/share/petrific" # This storage encrypts all objects with GPG before storing them into the # storage.local storage, we defined before [storage.local_encrypted] method="filter" base="local" encode=["gpg", "--encrypt", "-r", "0123456789ABCDEF0123456789ABCDEF01234567"] decode=["gpg", "--decrypt"] # using method="filter" you can e.g. also implement compression
You can then use the
petrific command line tool. Use
petrific -help for a description of subcommands.
If you feel comfortable on the command line, perhaps. While petrific contains tests, it still could have a larger test suite. Also it needs to prove itself in real world scenarios. It’s performance is not that great, so expect large backups to take a while.
Currently you can never delete backups (see also “Wish list” below), if you have large, fast-changing data, it is therefore probably not a good choice.
Use your own judgement.
In no particular order:
You can either send your patches (use
git format-patch) via email or send a pull request on the GitHub repo.
This software is released under the terms of the WTFPL (see LICENSE file), so you probably should agree with that license when sending patches.