44 lines
1.8 KiB
Markdown
44 lines
1.8 KiB
Markdown
# Restic Scripts
|
|
|
|
Purpose:
|
|
|
|
- Wrap `restic` with 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
|
|
|
|
```shell
|
|
python -m restic.snapshots
|
|
```
|
|
|
|
To stop docker containers before the backup and start them again afterwards, use the `--project` and `--services` flags.
|
|
|
|
```shell
|
|
python -m restic.backup --tag manual --project joplin --services app,db
|
|
```
|
|
|
|
```shell
|
|
python -m restic.prune
|
|
```
|