Skip to content
This repository has been archived by the owner on Feb 3, 2022. It is now read-only.
koraktor edited this page Apr 20, 2011 · 6 revisions

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.

Concept

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.

Get started

Requirements

  • Grit – a Ruby API for Git
  • Rubikon – a Ruby framework for console applications
  • Git >= 1.6

Installation

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

Basic usage

Now you probably want to know, how to use Silo. See the Usage page for more information about that.

Features

  • 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

Future plans

  • 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.

Contribute

Silo is a open-source project. Therefore you are free to help improving it. See the Contribute page on how you can help.

License

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.

Credits

  • Sebastian Staudt – koraktor(at)gmail.com

API documentation

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.