autorestic/README.md

130 lines
3.5 KiB
Markdown
Raw Permalink Normal View History

2019-06-20 08:17:20 +00:00
# autorestic
2019-10-26 19:34:02 +00:00
High backup level CLI utility for [restic](https://restic.net/).
Autorestic is a wrapper around the amazing [restic](https://restic.net/). While being amazing the restic cli can be a bit overwhelming and difficoult to manage if you habe many different location that you want to backup to multiple locations. This utility is aimed at making this easier 🙂
2019-06-21 10:25:54 +00:00
2019-10-26 19:30:47 +00:00
![Sketch](./docs/Sketch.png)
## 🌈 Features
- Config files, no CLI
- Predictable
- Backup locations to multiple backends
- Simple interface
2019-10-26 19:40:15 +00:00
- Fully encrypted
2019-06-21 10:25:54 +00:00
## Installation
```
2019-06-21 10:26:32 +00:00
curl -s https://raw.githubusercontent.com/CupCakeArmy/autorestic/master/install.sh | sh
```
2019-10-26 19:30:47 +00:00
## 🚀 Quickstart
### Setup
First we need to configure our locations and backends. Simply create a `.autorestic.yml` either in your home directory of in the folder from which you will execute `autorestic`.
2019-10-26 19:40:15 +00:00
Optionally you can specify the location of your config file by passing it as argument: `autorestic -c ../path/config.yml`
2019-10-26 19:30:47 +00:00
```yaml
locations:
home:
from: /home/me
to: remote
important:
from: /path/to/important/stuff
to:
- remote
- hdd
backends:
remote:
type: b2
path: 'myBucket:backup/home'
B2_ACCOUNT_ID: account_id
B2_ACCOUNT_KEY: account_key
hdd:
type: local
path: /mnt/my_external_storage
```
Then we check if everything is correct by running the `check` command. We will pass the `-a` (or `--all`) to tell autorestic to check all the locations.
```
autorestic check -a
```
If we would check only one location we could run the following: `autorestic -l home check`.
### Backup
```
autorestic backup -a
```
### Restore
```
autorestic restore -a -- --target /path/where/to/restore
```
2019-10-26 19:40:15 +00:00
## 🗂 Locations
A location simply a folder on your machine that restic will backup. The paths can be relative from the config file. A location can have multiple backends, so that the data is secured across multiple servers.
```yaml
locations:
my-location-name:
from: path/to/backup
to:
- name-of-backend
- also-backup-to-this-backend
```
## 💽 Backends
2019-10-26 19:48:32 +00:00
Backends are the place where you data will be saved. Backups are incremental and encrypted.
### Fields
2019-10-26 19:49:25 +00:00
##### `type`
2019-10-26 19:48:32 +00:00
Type of the backend see a list [here](https://restic.readthedocs.io/en/stable/030_preparing_a_new_repo.html)
Supported are:
- [Local](https://restic.readthedocs.io/en/stable/030_preparing_a_new_repo.html#local)
- [Backblaze B2](https://restic.readthedocs.io/en/stable/030_preparing_a_new_repo.html#backblaze-b2)
- [Amazon S3](https://restic.readthedocs.io/en/stable/030_preparing_a_new_repo.html#amazon-s3)
- [Minio](https://restic.readthedocs.io/en/stable/030_preparing_a_new_repo.html#minio-server)
- [Google Cloud Storage](https://restic.readthedocs.io/en/stable/030_preparing_a_new_repo.html#google-cloud-storage)
- [Microsoft Azure Storage](https://restic.readthedocs.io/en/stable/030_preparing_a_new_repo.html#microsoft-azure-blob-storage)
For each backend you need to specify the right variables as shown in the example below.
2019-10-26 19:49:25 +00:00
##### `path`
2019-10-26 19:48:32 +00:00
The path on the remote server.
For object storages as
2019-10-26 19:49:25 +00:00
##### Example
2019-10-26 19:49:06 +00:00
2019-10-26 19:48:32 +00:00
```yaml
backends:
name-of-backend:
type: b2
path: 'myAccount:myBucket/my/path'
B2_ACCOUNT_ID: backblaze_account_id
B2_ACCOUNT_KEY: backblaze_account_key
```
2019-10-26 19:49:25 +00:00
##### Note
2019-10-26 19:40:15 +00:00
Note that the data is automatically encrypted on the server. The key will be generated and added to your config file. Every backend will have a separate key. You should keep a copy of the keys somewhere in case your server dies. Otherwise DATA IS LOST!