224 lines
5.3 KiB
ReStructuredText
224 lines
5.3 KiB
ReStructuredText
Configuration
|
|
=============
|
|
|
|
Environment Variables
|
|
---------------------
|
|
|
|
RESTIC_REPOSITORY
|
|
~~~~~~~~~~~~~~~~~
|
|
|
|
Sets the restic repository path.
|
|
|
|
This is a standard environment variable
|
|
the ``restic`` command will read making it simple for
|
|
us to enter the container and use the restic command directly.
|
|
|
|
More about this value and supported backends:
|
|
https://restic.readthedocs.io/en/stable/030_preparing_a_new_repo.html
|
|
|
|
RESTIC_PASSWORD
|
|
~~~~~~~~~~~~~~~
|
|
|
|
Sets the password is used to encrypt/decrypt data.
|
|
Losing this password will make recovery impossible.
|
|
|
|
This is a standard environment variable the ``restic``
|
|
command will read making it simple for us to enter the
|
|
container running the command directly.
|
|
|
|
RESTIC_KEEP_DAILY
|
|
~~~~~~~~~~~~~~~~~
|
|
|
|
**Default value**: ``7``
|
|
|
|
How many daily snapshots (grouped by path) back in time we
|
|
want to keep. This is passed to restic in the
|
|
``forget --keep-daily`` option.
|
|
|
|
RESTIC_KEEP_WEEKLY
|
|
~~~~~~~~~~~~~~~~~~
|
|
|
|
**Default value**: ``4``
|
|
|
|
How many weeks back we should keep at least one snapshot
|
|
(grouped by path). This is passed to restic in the
|
|
``forget --keep-weekly`` option.
|
|
|
|
RESTIC_KEEP_MONTHLY
|
|
~~~~~~~~~~~~~~~~~~~
|
|
|
|
**Default value**: ``12``
|
|
|
|
How many months back we should keep at least on snapshot
|
|
(grouped by path). This is passed to restic in the
|
|
``forget --keep-monthly`` option.
|
|
|
|
The schedule parameters only accepts numeric values
|
|
and is validated when the container starts. Providing
|
|
values cron does not understand will stall all backup.
|
|
|
|
RESTIC_KEEP_YEARLY
|
|
~~~~~~~~~~~~~~~~~~
|
|
|
|
**Default value**: ``3``
|
|
|
|
How many years back we should keep at least one snapshot
|
|
(grouped by path). This is passed to restic in the
|
|
``forget --keep-yearly`` option.
|
|
|
|
CRON_SCHEDULE
|
|
~~~~~~~~~~~~~
|
|
|
|
**Default value**: ``0 2 * * *`` (daily at 02:00)
|
|
|
|
The cron schedule parameters. The crontab is generated when the
|
|
container starts from the ``CRON_SCHEDULE`` and ``CRON_COMMAND``
|
|
env variables.
|
|
|
|
.. code::
|
|
|
|
┌───────────── minute (0 - 59)
|
|
│ ┌───────────── hour (0 - 23)
|
|
│ │ ┌───────────── day of the month (1 - 31)
|
|
│ │ │ ┌───────────── month (1 - 12)
|
|
│ │ │ │ ┌───────────── day of the week (0 - 6) (Sunday to Saturday)
|
|
│ │ │ │ │
|
|
│ │ │ │ │
|
|
│ │ │ │ │
|
|
* * * * * command to execute
|
|
|
|
CRON_COMMAND
|
|
~~~~~~~~~~~~
|
|
|
|
**Default value**: ``source /env.sh && rcb backup > /proc/1/fd/1``
|
|
|
|
The command executed in the crontab. A single line is generated when
|
|
the container starts from the ``CRON_SCHEDULE`` and ``CRON_COMMAND``
|
|
environment variables.
|
|
|
|
The default command sources a dump of all env vars, runs the
|
|
backup command and directs output to pid 1 so it appears in
|
|
docker logs.
|
|
|
|
By default the crontab will look like this::
|
|
|
|
0 2 * * * source /env.sh && rcb backup > /proc/1/fd/1
|
|
|
|
LOG_LEVEL
|
|
~~~~~~~~~
|
|
|
|
**Default value**: ``info``
|
|
|
|
Log level for the ``rcb`` command. Valid values are
|
|
``debug``, ``info``, ``warning``, ``error``.
|
|
|
|
EMAIL_HOST
|
|
~~~~~~~~~~
|
|
|
|
The email host to use.
|
|
|
|
Alerts can be tested using the ``rcb alerts`` command.
|
|
This will send a test message to all configured alert
|
|
backends.
|
|
|
|
EMAIL_PORT
|
|
~~~~~~~~~~
|
|
|
|
The port to connect to
|
|
|
|
Alerts can be tested using the ``rcb alerts`` command.
|
|
This will send a test message to all configured alert
|
|
backends.
|
|
|
|
EMAIL_HOST_USER
|
|
~~~~~~~~~~~~~~~
|
|
|
|
The user of the sender account
|
|
|
|
Alerts can be tested using the ``rcb alerts`` command.
|
|
This will send a test message to all configured alert
|
|
backends.
|
|
|
|
EMAIL_HOST_PASSWORD
|
|
~~~~~~~~~~~~~~~~~~~
|
|
|
|
The password for the sender account
|
|
|
|
Alerts can be tested using the ``rcb alerts`` command.
|
|
This will send a test message to all configured alert
|
|
backends.
|
|
|
|
EMAIL_SEND_TO
|
|
~~~~~~~~~~~~~
|
|
|
|
The email address to send alerts
|
|
|
|
Alerts can be tested using the ``rcb alerts`` command.
|
|
This will send a test message to all configured alert
|
|
backends.
|
|
|
|
DISCORD_WEBHOOK
|
|
~~~~~~~~~~~~~~~
|
|
|
|
The discord webhook url. And administrator can quickly set this up
|
|
by going to server settings in the discord client and create
|
|
a webhook that will post embedded messages to a specific channel.
|
|
|
|
The url usually looks like this: ``https://discordapp.com/api/webhooks/...```
|
|
|
|
DOCKER_BASE_URL
|
|
~~~~~~~~~~~~~~~
|
|
|
|
**Default value**: ``unix://tmp/docker.sock``
|
|
|
|
The location of the docker socket.
|
|
|
|
Compose Labels
|
|
--------------
|
|
|
|
A simple `include` and `exclude` filter is also available.
|
|
|
|
.. code:: yaml
|
|
|
|
example:
|
|
image: some_image
|
|
labels:
|
|
restic-compose-backup.volumes: true
|
|
restic-compose-backup.volumes.include: "files,data"
|
|
volumes:
|
|
# Source don't match include filter. No backup.
|
|
- media:/srv/media
|
|
# Matches include filter
|
|
- files:/srv/files
|
|
- /srv/data:/srv/data
|
|
|
|
volumes:
|
|
media:
|
|
files:
|
|
|
|
Exclude
|
|
|
|
.. code:: yaml
|
|
|
|
example:
|
|
image: some_image
|
|
labels:
|
|
restic-compose-backup.volumes: true
|
|
restic-compose-backup.volumes.exclude: "media"
|
|
volumes:
|
|
# Excluded by filter
|
|
- media:/srv/media
|
|
# Backed up
|
|
- files:/srv/files
|
|
- /srv/data:/srv/data
|
|
|
|
volumes:
|
|
media:
|
|
files:
|
|
|
|
Databases
|
|
|
|
Will dump databases directly into restic through stdin.
|
|
They will appear in restic as a separate snapshot with
|
|
path `/databases/<service_name>/dump.sql` or similar.
|