Commit Graph

71 Commits

Author SHA1 Message Date
İbrahim Akyel
0b205fe6dc
SSH Backup Storage Support (#107)
* SSH Client implemented

* Private key auth implemented
Code refactoring

* Refactoring

* Passphrase renamed to IdentityPassphrase
Default private key location changed to .ssh/id
2022-06-17 11:06:15 +02:00
a850bf13fe Fix broken link in README 2022-05-12 08:18:12 +02:00
b52b271bac
Allow for the exclusion of files from backups (#100)
* Hoist walking of files so it can be used for features other than archive creation

* Add option to ignore files from backup using glob patterns

* Use Regexp instead of glob for exclusion

* Ignore artifacts

* Add teardown to test

* Allow single Re for filtering only

* Add documentation

* Use MatchString on re, add bad input to message in case of error
2022-05-08 11:20:38 +02:00
cac5777e79 Add documentation on using multiple configs for complex retention schemes 2022-04-20 18:01:41 +02:00
94a1edc4ad
Allow disabling of certificate verification for WebDAV (#98) 2022-04-20 14:16:59 +02:00
Simon Dünhöft
9c23767fce
Fixed wrong env name for S3 bucket in README (#89)
The README was using `AWS_BUCKET_NAME` instead of `AWS_S3_BUCKET_NAME` in the recipes. 
This resulted in no data being uploaded to S3.
2022-04-12 19:38:15 +02:00
51af8c3c77
Deprecate BACKUP_FROM_SNAPSHOT (#81) 2022-03-25 18:28:58 +01:00
1ea0b51b23
Tag releases with major version too (#82) 2022-03-25 18:27:00 +01:00
da8c63f755
Support identical cron schedule (#87)
* Retry on lock being unavailable

* Refactor locking to return plain error

* Collect LockedTime in stats

* Add test case

* Add documentation for LOCK_TIMEOUT

* Log in case lock needs to be awaited

* Release resources created for awaiting lock
2022-03-25 18:26:34 +01:00
4b1127b8c4 Document BACKUP_SOURCES 2022-03-04 19:57:32 +01:00
bad22eee93 Fix syntax highlighting in container 2022-03-04 14:08:31 +01:00
c9ebb9e14e
Allow multiple schedules in the same container (#78)
* Allow mounting of config directory for multiple schedules

* Add docs for conf.d feature

* Fix behavior on multiple files

* Define default case first in entrypoint script
2022-03-04 13:51:26 +01:00
Rajan Patel
3bbeba5b83
update custom docker host documentation for pre/post commands (#77) 2022-02-24 05:31:36 +01:00
Kazi
2a17e84ab6
snapshot-style restore example (#76)
* snapshot-style restore example

* manual backup recommendation
2022-02-23 07:58:09 +01:00
Rajan Patel
00f2359461
Add DOCKER_HOST documentation (#74)
* add DOCKER_HOST documentation

* add which endpoints are required for DOCKER_HOST

* Update README.md

Co-authored-by: Frederik Ring <frederik.ring@gmail.com>
2022-02-22 08:00:26 +01:00
0504a92a1f
Add option to run pre/post commands for any container (#73)
* Add option to run pre commands on arbitrary container

* Correctly handle quoted args in commands

* Provide defaults for test version arg

* Allow filtering of target containers

* Add documentation on exec commands

* Use mysqldump in exec test

* Add mysqldump section to recipes

* Also run commands test in swarm mode

* Use name instead of id

* Add syntax highlighting

* Add missing license headers
2022-02-22 07:53:33 +01:00
58b42b9036
Supporting proxied Docker APIs through DOCKER_HOST (#70) 2022-02-18 09:08:21 +01:00
0e248010a8 Add note about how notifications can be customized to config reference 2022-02-12 20:34:51 +01:00
34d04211eb Update README TOC 2022-02-11 20:06:23 +01:00
Mauro Molin
8dfdd14527
Added custom notification messages using text/template (#60)
* Added custom notification messages using text/template

* Change notification template path and removed automatic newline trim

* Added stats and changed structure of template params

* Stat file hotfix

* Embedded and fixed default notification templates


Fix

* Changed Output to LogOutput

* Changed stats integer to unsigned

* Bytes formatting in template func


fix

* Changed Archives to Storages

* Removed unecessary sleep for pruning leeway

* Set EndTime after pruning is completed

* Added custom notifications documentation

* Added 5s sleep in swarm test

* Fixed documentation

* Dockerfile copies all files in cmd/backup
2022-02-11 20:05:16 +01:00
Fridgemagnet
ddc34be55d
Updated README.md "Restoring..." section example (#56)
Edited the "Restoring a volume from a backup" section example to be able to better differentiate between the names of the temporary restore container and the name of the mounted restore volume.
New example container name: temp_restore_container
The restore volume name remains the same: backup_restore

Also changed "one-off container" to "once-off container".
2022-02-04 11:52:59 +01:00
Joshua Noble
cb9b4bfcff
Add support for Filebase (#54) 2022-02-02 17:22:42 +01:00
6fe629ce87
Allow path to be set for bucket storage (#52) 2022-01-25 21:16:16 +01:00
1db896f7cf Tweak README, improve client naming, tidy go.mod file 2022-01-22 13:35:13 +01:00
Kaerbr
6ded00aa06
Support Nextcloud / WebDav (#48)
* add studio-b12/gowebdav to be able to upload to webdav server

* make sure all env variables are present for webdav upload

* implement file upload to WebDav server

directory defaults to the base directory

* docs: add the new feature to the documentation

* if no WebDav env variable are given throw no error

* docs: use more elegant english :D

Co-authored-by: Frederik Ring <frederik.ring@gmail.com>

* docs: use official spelling of "WebDAV"

* perf: golang likes to return early instead of having an else block

* use WEBDAV_PATH instead of WEBDAV_DIRECTORY

* use split_words for more convenience

like shown here: https://github.com/kelseyhightower/envconfig#struct-tag-support

* simplify

* feat: add pruning of files in WebDAV remote

Based on / Inspired by the minio/S3 implementation of pruning remote files.

* remove logging from the development

* test: first try implementing tests

Sandly I have to use the remote pipeline -- local wont work for me.

* test: adapt used volume names

* test: specify image only once!

* test: minio AND webdav data should be present

* test: backups on WebDAV remote are laying in the root directory

* test: the webdav server stores date in /var/lib/dav

* trying with data subfolder

* test: 1 container was added so the number raised from 3 to 4

* webdav  subfolder is "data" not "backup"

* fix: password AND username must be defined

not password OR username

* improve logging

* feat: if the given path on the server isnt preset it will be created

* test: add creation of new folder for webdav to tests

Co-authored-by: Frederik Ring <frederik.ring@gmail.com>
2022-01-22 13:29:21 +01:00
6b79f1914b
Update README.md 2022-01-06 16:09:33 +01:00
40ff2e00c9
Update README.md 2022-01-06 16:07:00 +01:00
32575c831e Also expand env vars in pruning prefix if configured 2021-12-23 09:22:56 +01:00
c062710ce8
Allow for env substitution in backup filename (#39) 2021-12-22 14:39:46 +01:00
3a7dfe8e60 Add note about double quoting issue in older compose versions 2021-12-18 13:24:14 +01:00
9ec33510e7 Extend docs on notifications 2021-12-18 10:31:12 +01:00
88c90a206c Use int comparison for checking hooks 2021-12-18 10:31:12 +01:00
8bad0656b3 Enable notifications on multiple levels 2021-12-18 10:31:12 +01:00
08d78a0bd6 allow sending notifications to multiple channels 2021-12-18 10:31:12 +01:00
3c06bf8102 run cli test using BACKUP_FROM_SNAPSHOT 2021-11-08 08:44:59 +01:00
schwannden
411c39ee72
create a snapshot before creating tar archive (#32)
* create a snapshot before creating tar archive

* safeguard snapshot removal and make snapshot optional

* fix typo, make sure remove snapshot failure triggers failure hook

Co-authored-by: Schwannden Kuo <schwannden@mobagel.com>
2021-11-08 08:39:18 +01:00
5245b5882f update README, save some indentation 2021-10-28 19:55:39 +02:00
ad7ec58322 add syntax highlighting 2021-10-23 17:45:57 +02:00
b7ab2fbacc add section about container timezones to the README 2021-10-23 17:44:30 +02:00
c59b40f2df automatically create symlink to latest local backup if configured 2021-10-01 18:19:24 +02:00
cff418e735 fix README grammar 2021-10-01 08:48:20 +02:00
bd73a2b5e4 allow s3 authentication via IAM role 2021-09-30 19:24:43 +02:00
184b7a1e18 add docs on one off backups using docker cli 2021-09-11 11:21:48 +02:00
69a94f226b tweak configuration reference for email settings 2021-09-10 11:58:33 +02:00
af3e69b7a8 fix typo in README 2021-09-09 09:19:37 +02:00
88368197c1 implement email notifications on failed backup runs 2021-09-09 09:00:23 +02:00
bea203af3d improve documentation 2021-08-29 18:16:04 +02:00
5334ff1a5a refactor script initialization 2021-08-25 07:48:20 +02:00
7086c6e645 read backup in small chunks when encrypting 2021-08-23 14:48:33 +02:00
4c80494433 use go native strftime version 2021-08-23 14:48:33 +02:00