Fast, secure, efficient backup program
Find a file
Seb Patane 33b6a7381b Don't consider a pre-existing directory in the restore path to be a failure
* When a directory already exists, CreateDirAt returns an error stating so
  * This means that the restoreMetadata step is skipped, so for directories which already exist no file permissions, owners, groups, etc will be restored on them
* Not returning the error if it's a "directory exists" error means the metadata will get restored
  * It also removes the superfluous "error for ...: mkdir ...: file exists" messages
* This makes the behaviour of directories consistent with that of files (which always have their content & metadata restored, regardless of whether they existed or not)
2016-11-14 17:53:09 +10:00
.github Add issue template 2016-02-21 00:35:58 +01:00
doc Added new flag to backup subcommand that reads the files to backup from a file 2016-11-12 15:45:32 +01:00
src Don't consider a pre-existing directory in the restore path to be a failure 2016-11-14 17:53:09 +10:00
vendor Update golang.org/x/crypto/poly1305 2016-10-14 12:44:06 +02:00
.envrc Add hints how to use the go tool and direnv 2016-10-17 13:09:56 +02:00
.gitignore .gitignore: Add /vendor/pkg 2016-02-21 15:33:13 +01:00
.hound.yml Enable HoundCI checking for Go 2016-02-05 21:15:46 +01:00
.travis.yml Exclude unneeded test run without fuse tests 2016-09-15 21:37:50 +02:00
appveyor.yml Require Go 1.6 or greater 2016-08-16 20:32:58 +02:00
build.go Require Go 1.6 or greater 2016-08-16 20:32:58 +02:00
CONTRIBUTING.md Add hints how to use the go tool and direnv 2016-10-17 13:09:56 +02:00
Dockerfile Remove coveralls.io 2016-09-03 11:06:09 +02:00
LICENSE LICENSE: Add email address 2014-09-18 21:10:30 +02:00
Makefile Fix Makefile 2016-03-31 19:20:57 +02:00
mkdocs.yml doc/mkdocs: Improve code hilighting 2016-11-08 20:23:39 +01:00
README.md Remove Debian UID from GPG key printout 2016-10-17 13:10:16 +02:00
run_integration_tests.go Run fuse tests on Linux 2016-09-15 21:25:59 +02:00
Vagrantfile Vagrantfile: Fix network for darwin 2016-05-07 23:38:41 +02:00
VERSION Add VERSION file for 0.3.0 2016-10-02 18:24:14 +02:00

Documentation Build Status Build status Report Card

Introduction

restic is a backup program that is fast, efficient and secure. Detailed information can be found in the documentation and the user manual. The design document lists the technical background and gives detailed information about the structure of the repository and the data saved therein.

The latest documentation can be viewed online at https://restic.readthedocs.io/en/latest. On the bottom left corner there is a menu that allows switching to the documentation and user manual for the latest released version.

Build restic

Install Go/Golang (at least version 1.6), then run go run build.go, afterwards you'll find the binary in the current directory:

$ go run build.go

$ ./restic --help
Usage:
  restic [OPTIONS] <command>
[...]

More documentation can be found in the user manual.

At the moment, the only tested compiler for restic is the official Go compiler. Building restic with gccgo may work, but is not supported.

Contribute and Documentation

Contributions are welcome! More information and a description of the development environment can be found in CONTRIBUTING.md. A document describing the design of restic and the data structures stored on the back end is contained in doc/Design.md.

If you'd like to start contributing to restic, but don't know exactly what do to, have a look at this great article by Dave Cheney: Suggestions for contributing to an Open Source project A few issues have been tagged with the label help wanted, you can start looking at those: https://github.com/restic/restic/labels/help%20wanted

Contact

If you discover a bug, find something surprising or if you would like to discuss or ask something, please open a github issue. If you would like to chat about restic, there is also the IRC channel #restic on irc.freenode.net.

Important: If you discover something that you believe to be a possible critical security problem, please do not open a GitHub issue but send an email directly to alexander@bumpern.de. If possible, please encrypt your email using the following PGP key (0x91A6868BD3F7A907):

pub   4096R/91A6868BD3F7A907 2014-11-01
      Key fingerprint = CF8F 18F2 8445 7597 3F79  D4E1 91A6 868B D3F7 A907
      uid                          Alexander Neumann <alexander@bumpern.de>
      sub   4096R/D5FC2ACF4043FDF1 2014-11-01

License

Restic is licensed under "BSD 2-Clause License". You can find the complete text in the file LICENSE.