Restic
restic / restic
restic is a backup program that is fast, efficient and secure.
Restic Documentation
Advanced Usage
Forget all snapshots with a certain tag
FORGET_TAG=resticprofile
restic forget $(restic snapshots --tag $FORGET_TAG --json | jq '.[] | .short_id' | jq -s | jq -r 'join(" ")')
Restic Scripts
Purpose:
- Wrap
resticwith the ability to start/stop Docker containers - Send updates to Loki server
Environment Variables
Put these in a .env file in the directory that the backup will be run from.
| Env Variable | Description |
|---|---|
HOSTNAME |
Network hostname of where the backup is running. Used to tag the backups in restic |
BACKUP_DIR |
Directory to back up |
RESTIC_REPOSITORY |
Directory for the restic repository. This is usually on a mount point made from Proxmox |
RESTIC_PASSWORD |
Password for the restic repository |
LOKI_URL |
Push URL for Loki. Should include the port and end with something like /loki/api/v1/push |
Loki Updates
Updates sent to Loki will have the following labels:
| Label | Description |
|---|---|
host |
Hostname set by the environment variable HOSTNAME |
backup |
String representing the type of update e.g. backup, prune, forget, or size |
Usage
To stop docker containers before the backup and start them again afterwards, use the --project and --services flags.