Poor mans backup solution.
Go to file
Djeeberjr d5db92eaa5
All checks were successful
continuous-integration/drone/push Build is passing
fixed prune/forget
2022-03-28 00:57:42 +02:00
src fixed prune/forget 2022-03-28 00:57:42 +02:00
.dockerignore added dockerignore 2021-11-10 21:29:50 +01:00
.drone.yml drone file 2022-02-15 11:21:51 +01:00
.gitignore big refactor 2022-03-27 19:28:00 +02:00
docker-compose.yml big refactor 2022-03-27 19:28:00 +02:00
Dockerfile big refactor 2022-03-27 19:28:00 +02:00
README.md big refactor 2022-03-27 19:28:00 +02:00

Use restic together with rclone for a poor mans backup solution.

Configuration

Environment variables:

RCLONE_REMOTE remote for rclone e.g. gdrive:/backup

RCLONE_CONFIG file path for the rclone config file e.g. /config/rclone.conf

RESTIC_PASSWORD or RESTIC_PASSWORD_FILE password for the repo

RCLONE_CONFIG_CONTENT content of the rclone config.

For the database:

MYSQL_DUMP_DB all databases comma sperated: db1,db2

MYSQL_HOST

MYSQL_USERNAME

MYSQL_PASSWORD or MYSQL_PASSWORD_FILE

POSTGRES_DUMP_DB all databases comma sperated: db1,db2

POSTGRES_HOST

POSTGRES_USERNAME

POSTGRES_PASSWORD or POSTGRES_PASSWORD_FILE

Use the /app/init.sh script to init a new remote.

Directorys

/config Contains the rclone config. Can also be passed as env var. /backup Contains the mounted volumes as read only /restore Contains volumes to restore

Usage

Here is an example of the script i use to backup my volumes:

#!/usr/bin/env sh
set -e 

# get all volumes with the "backup.enable" label on it
BACKUP_VOL=$(docker volume ls --filter "label=backup.enable" --format '-v {{ .Name }}:/backup/{{ .Name }}:ro ')

docker run \
    --rm \
    -e "RCLONE_REMOTE=gdrive:/backup" \
    -e "RCLONE_CONFIG=/config/rclone.conf" \
    -e "ENC_PASSWORD=MyPassword" \
    -e "MYSQL_USERNAME=root" \
    -e "MYSQL_PASSWORD=dbPassword" \
    -e "MYSQL_DUMP_DB=db1,db2" \
    -e "MYSQL_HOST=databaseHost" \
    --network "dbNet" \
    -v "/var/docker/backup:/config" \
    $BACKUP_VOL \
    djeeberjr/backup \
    backup