Compare commits

...

7 Commits

Author SHA1 Message Date
Ian 78d6fd7ff5
Merge pull request #1 from GoliathLabs/master
Added: Dependabot.yml
2021-12-27 21:54:34 -08:00
GoliathLabs 16d10e3fca
Added: Dependabot.yml 2021-12-20 20:26:27 +01:00
ViViDboarder 428b9c1d8e Update readme to show proper location of restore script 2021-06-17 13:28:03 -07:00
ViViDboarder 4e6bc4022c Fix location of scripts in cron 2021-06-15 14:50:03 -07:00
ViViDboarder 27aa1fd059 Add instructions for advice on configuring rclone targets 2021-06-15 13:21:33 -07:00
ViViDboarder f4aa842dd3 Make config dir a volume to presist restic configs 2021-06-15 13:21:09 -07:00
ViViDboarder fd824fbf47 Add tests 2021-06-15 12:30:02 -07:00
7 changed files with 58 additions and 5 deletions

16
.github/dependabot.yml vendored Normal file
View File

@ -0,0 +1,16 @@
# Docs: <https://docs.github.com/en/free-pro-team@latest/github/administering-a-repository/customizing-dependency-updates>
version: 2
updates:
- package-ecosystem: github-actions
directory: /
schedule: {interval: monthly}
reviewers: [ViViDboarder]
assignees: [ViViDboarder]
- package-ecosystem: docker
directory: /
schedule: {interval: monthly}
reviewers: [ViViDboarder]
assignees: [ViViDboarder]

30
.github/workflows/tests.yml vendored Normal file
View File

@ -0,0 +1,30 @@
---
name: tests
"on":
push:
pull_request:
branches:
- master
jobs:
tests:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Run base tests
run: make test-x86
- name: Run s3 tests
run: make test-s3-x86
- name: Setup python
uses: actions/setup-python@v2.2.2
- name: Run pre-commit hooks
run: |
pip install pre-commit
make check

View File

@ -26,4 +26,6 @@ COPY ./scripts /scripts
HEALTHCHECK CMD /scripts/healthcheck.sh
VOLUME /root/.config
CMD [ "/scripts/start.sh" ]

View File

@ -11,7 +11,7 @@ test: test-x86
.PHONY: build-x86
build-x86:
docker build -f ./Dockerfile -t $(DOCKER_TAG) .
docker build --build-arg TARGETARCH=amd64 -f ./Dockerfile -t $(DOCKER_TAG) .
.PHONY: build-arm
build-arm:
@ -35,7 +35,7 @@ test-all: test-x86 test-arm
.PHONY: test-s3-x86
test-s3-x86:
cd tests && ./test-s3.sh
cd tests && env TARGETARCH=amd64 ./test-s3.sh
.PHONY: shell-x86
shell-x86: build-x86

View File

@ -31,10 +31,12 @@ Hostname is used for identifying what you are backing up. You may want to specif
Mount all volumes from your existing container with `--volumes-from` and then back up by providing the paths to those volumes. If there are more than one volumes, you'll want to use the above tip for mulitple backup sources
### Restoring a backup
On your running container, execute `/restore.sh`. That should be that! Eg. `docker exec my_backup_container /restore.sh`
On your running container, execute `/scripts/restore.sh`. That should be that! Eg. `docker exec my_backup_container /scripts/restore.sh`
### Backup to any rclone destination
This image also contains [rclone](https://rclone.org). This allows you to target any destination supported by rclone. Check out the [official documentation](https://restic.readthedocs.io/en/stable/030_preparing_a_new_repo.html#other-services-via-rclone) to see how to configure this.
Rather than having to use an exec shell inside the container, I recommend configuring via the backup destination. For example: `rclone::ftp,env_auth:/test-restic` and then passing all config values via the environment.
### Pre/post backup/restore scripts
Before and after any backup or restore, scripts located in `/scripts/{backup,restore}/{before,after}/` will be executed. This can be used to do things like snapshotting a database before backing it up and restoring the contents.

View File

@ -34,11 +34,11 @@ if [ -n "$CRON_SCHEDULE" ]; then
echo "SHELL=/bin/bash" > /crontab.conf
# Schedule the backups
echo "$CRON_SCHEDULE /cron-exec.sh /backup.sh" >> /crontab.conf
echo "$CRON_SCHEDULE /scripts/cron-exec.sh /scripts/backup.sh" >> /crontab.conf
echo "Backups scheduled as $CRON_SCHEDULE"
if [ -n "$VERIFY_CRON_SCHEDULE" ]; then
echo "$VERIFY_CRON_SCHEDULE /cron-exec.sh /verify.sh" >> /crontab.conf
echo "$VERIFY_CRON_SCHEDULE /scripts/cron-exec.sh /scripts/verify.sh" >> /crontab.conf
echo "Verify scheduled as $VERIFY_CRON_SCHEDULE"
fi

View File

@ -1,9 +1,12 @@
---
version: '2'
services:
restic:
build:
context: ..
dockerfile: Dockerfile
args:
- TARGETARCH
entrypoint: "bash"
command: "-c 'sleep 2 && /test.sh'"
hostname: itest