Home
Silo is command-line utility and Ruby API for Git-based backups. With Silo you can backup arbitrary files into one or more Git repositories and take advantage of Git's compression, speed and other features. No Git knowledge needed.
To backup files into a repository Silo uses the well-known and established version control system (VCS) Git. Instead of using Git's frontend commands for the end-user, so called "porcelain" commands, Silo makes use of the more low-level "plumbing" commands. These can be used to write directly to the Git repository, bypassing the automatisms tailored for source code histories.
- Grit – a Ruby API for Git
- Rubikon – a Ruby framework for console applications
- Git >= 1.6
You can install Silo using RubyGems. This is the easiest way of installing and recommended for most users.
$ gem install silo
If you want to use the development code you should clone the Git repository:
$ git clone git://github.com/koraktor/silo.git
$ cd silo
$ rake install
Now you probably want to know, how to use Silo. See the Usage page for more information about that.
- Backup and restore arbitrary files and directories into/from a bare Git repository
- Files can be saved into user-defined directories ("prefix") inside the repository – this does not need to match the file system structure
- Restoring will preserve this structure
- Built-in support for Git's remote repositories for easy mirroring to other locations
- Improve user experience, i.e. ask for files to overwrite, warn on missing files and other problems etc.
- Customizable backup / restore operations (e.g. using Includes / excludes)
- Time aware file recovery, like "restore my file from a week ago"
- Built-in support to trigger pushs to Git remotes (command-line interface, post commit hook, etc.)
- Built-in support for other remote backup methods, like FTP, rsync, etc.
Silo is a open-source project. Therefore you are free to help improving it. See the Contribute page on how you can help.
This code is free software; you can redistribute it and/or modify it under the terms of the new BSD License. A copy of this license can be found here.
- Sebastian Staudt – koraktor(at)gmail.com
If you want to read through the (low-level) Ruby API documentation you will find it at RubyDoc.info. You will also find the documentation of the current development in the master
branch there.