|
@@ -1,28 +1,35 @@
|
|
-## Restic
|
|
|
|
|
|
+# Restic
|
|
|
|
|
|
-This [`docker-compose.yml`](./docker-compose.yml) file runs Restic backup as per [`crontab.txt`](data/restic/crontab.txt) with parameters set in [`.env`](.env.template) using the [restic/restic](https://hub.docker.com/r/restic/restic/) image.
|
|
|
|
|
|
+[**Restic**](https://restic.net/), a modern **backup program** which supports many different storage types.
|
|
|
|
|
|
-### Setup
|
|
|
|
|
|
+The setup in this repository will use [**MinIO**](https://github.com/minio/minio), an [Amazon S3](https://aws.amazon.com/s3/) compatible object storage, as **backup target**. Further we'll make use of:
|
|
|
|
+- The official [restic/restic](https://hub.docker.com/r/restic/restic/) container image
|
|
|
|
+- [Docker Compose](https://docs.docker.com/compose/) for orchistration
|
|
|
|
+- Cron (in the restic container) to schedule backups
|
|
|
|
+- Scripts to run new and clean up old backups
|
|
|
|
+- Scripts to push metrics for [Prometheus](https://prometheus.io/)
|
|
|
|
+
|
|
|
|
+## Setup
|
|
|
|
+1. [Get your MinIO server running](https://git.in-ulm.de/ulpeters/minio/) or make use of the [IN-Ulm MinIO Service](https://s3.ulm-store.de/)
|
|
|
|
+2. [Setup a S3 bucket with MinIO MC](https://git.in-ulm.de/ulpeters/minio-mc/)
|
|
|
|
+3. Setup Restic
|
|
|
|
|
|
-#### Setup your config
|
|
|
|
```
|
|
```
|
|
|
|
+# Setup your config
|
|
cp .env.template .env
|
|
cp .env.template .env
|
|
vi .env
|
|
vi .env
|
|
-```
|
|
|
|
|
|
|
|
-#### Run the container
|
|
|
|
-```
|
|
|
|
|
|
+# Run the container
|
|
docker-compose up -d
|
|
docker-compose up -d
|
|
docker logs restic -f
|
|
docker logs restic -f
|
|
```
|
|
```
|
|
|
|
|
|
-### Operation
|
|
|
|
-
|
|
|
|
-#### Monitoring
|
|
|
|
|
|
+## Operation
|
|
|
|
+### Monitoring
|
|
For monitoring purposes the script `data/restic/push-metric.sh` is executed prior to and after any backup.
|
|
For monitoring purposes the script `data/restic/push-metric.sh` is executed prior to and after any backup.
|
|
-If the environment variable `$PROM_GW_URL` is set the respective Prometheus Push Gateway will get informed about the backup start and result (stop, incomplete, fail). In case of a proper stop, further statistics will be send to the Push Gateway.
|
|
|
|
|
|
+If the environment variable `$PROM_GW_URL` is set, the respective Prometheus Push Gateway will get informed about the backup start and result (stop, incomplete, fail). In case of a proper stop, further statistics will be send to the Push Gateway.
|
|
|
|
|
|
-#### List snapshots with date/time
|
|
|
|
|
|
+### List snapshots with date/time
|
|
```
|
|
```
|
|
/ # restic ls
|
|
/ # restic ls
|
|
Fatal: Invalid arguments, either give one or more snapshot IDs or set filters.
|
|
Fatal: Invalid arguments, either give one or more snapshot IDs or set filters.
|
|
@@ -36,12 +43,10 @@ d629a178 2020-01-06 20:20:06 restic /mnt/source
|
|
2 snapshots
|
|
2 snapshots
|
|
```
|
|
```
|
|
|
|
|
|
-
|
|
|
|
-#### Show diff between snapshots
|
|
|
|
|
|
+### Show diff between snapshots
|
|
```
|
|
```
|
|
restic diff e70bd81a d629a178
|
|
restic diff e70bd81a d629a178
|
|
```
|
|
```
|
|
|
|
|
|
-
|
|
|
|
-### References
|
|
|
|
-- Restic docu: https://restic.readthedocs.io/en/stable/index.html
|
|
|
|
|
|
+## References
|
|
|
|
+- Official Restic Documentation: https://restic.readthedocs.io/en/stable/index.html
|