All notable changes to this project will be documented in this file.
2024-12-17 : 3.0.3.2, 3.0.3.2-r1, 3.0.3.2-pg12, 3.0.3.2-pg12-r4, 3.0.3.2-pg14, 3.0.3.2-pg14-r4, 3.0.3.2-pg15, 3.0.3.2-pg15-r4, 3.0.3.2-pg16, 3.0.3.2-pg16-r4 , 3.0.3.2-mysql80, 3.0.3.2-mysql80-r4
- duplicity 3.0.3.2 from from stable PPA https://code.launchpad.net/~duplicity-team/+archive/ubuntu/duplicity-release-git
- add s3 container mode : need extraEnv * AWS_ACCESS_KEY_ID=xxxxx * AWS_SECRET_ACCESS_KEY=yyyyy * AWS_DEFAULT_REGION="eu-west-3" * DAILY_S3_CONTAINER=my-shuttle-env * MONTHLY_S3_CONTAINER=my-shuttle-env
2024-03-11 : 2.2.2, 2.2.2-r4, 2.2.2-pg12, 2.2.2-pg12-r4, 2.2.2-pg14, 2.2.2-pg14-r4, 2.2.2-pg15, 2.2.2-pg15-r4, 2.2.2-pg16, 2.2.2-pg16-r4 , 2.2.2-mysql80, 2.2.2-mysql80-r4
- add pg16
2.2.2, 2.2.2-r3, 2.2.2-pg12, 2.2.2-pg12-r3, 2.2.2-pg14, 2.2.2-pg14-r3, 2.2.2-pg15, 2.2.2-pg15-r3, 2.2.2-mysql80, 2.2.2-mysql80-r3
- add mysql image
- duplicity
incr
is nowincremental
- duplicity 2.2.2 from from stable PPA https://code.launchpad.net/~duplicity-team/+archive/ubuntu/duplicity-release-git
- split Dockerfile in 2 images :
- filesystem image
- postgresql image
- duplicity 1.2.3 from from stable PPA https://code.launchpad.net/~duplicity-team/+archive/ubuntu/duplicity-release-git
- postgresql-client-15
- duplicity 1.2.1 from from stable PPA https://code.launchpad.net/~duplicity-team/+archive/ubuntu/duplicity-release-git
- postgresql-client-14
- add --daemon mode
- wrong duplicity release. duplicity was still in 0.8.12
- Allow restore and backup hook scripts
-
PRE_HOOK_BACKUP_SCRIPT : path of script to execute before backup duplicity
-
POST_HOOK_BACKUP_SCRIPT : path of script to execute after backup duplicity
-
PRE_HOOK_RESTORE_SCRIPT : path of script to execute before restore duplicity
-
POST_HOOK_RESTORE_SCRIPT : path of script to execute after restore duplicity
-
- update duplicity to 0.8.18
- add variable DB_SKIP_DROP=false . If true, to allow to not include drop instruction into backup before create objects
- add variable DB_DATABASES="" . if not empty, allow to give a list of databases names separate with space. if empty or not exists, dump all databases
- update base from ubuntu 20.4
- update duplicity to 0.8.12
- update to postgresql-client-12, mysql-client-8.0
- update jobber to v1.4.4
- update tini to v0.19.0
correct CLOSING_NAME in env-default.sh correct CLOSING_JOB_HOUR="0 * *" in env-default.sh
Use last duplicity release
JOB_SHOW_OUTPUT use /proc/1/fd/1 instead of redirect all output in pipe
CLOSING_xxxxx variables allow to detecte flag file to make a CLOSING backup CLOSING_[filesystem|swift|sftp]_CONTAINER allow to give container backyp type [filesystem|swift|sftp] for closing CLOSING_JOB_HOUR="0,15,30,45 * *" : in jobber cron time format SS MM HH CLOSING_STATE=/tmp/closing-backup.state # CLOSING_FLAGFILE : 0 - nothing, 1 - requested, 2 pending
- remove PCA backend - not usable
Use last duplicity release
Add sftp backend :
enabled with DAILY_SFTP_CONTAINER and MONTHLY_SFTP_CONTAINER : in form of other.host/some_dir
need SFTP_USER with SFTP_PASSWORD or SFTP_IDENTITYFILE
if SFTP_PASSWORD is defined, then generate the following backend sftp://${SFTP_USER}:${SFTP_PASSWORD}@${DAILY_SFTP_CONTAINER}
if SFTP_IDENTITYFILE is defined, then generate the following backend sftp://${SFTP_USER}@${DAILY_SFTP_CONTAINER} and --ssh-options="-oIdentityFile=${SFTP_IDENTITYFILE}"
Use prerelease 0.8.0 to allox PCA backend : see see https://docs.ovh.com/gb/en/storage/pca/duplicity/
add DAILY_PCA_CONTAINER and MONTHLY_PCA_CONTAINER
Allow to remove older backup based on WEEK or MONTH instead of number of backupset
DAILY_BACKUP_MAX_WEEK=5 : allow to remove older backupset with duplicity remove-older-than <time>, where <time> = now + (5 * 7 days)
if DAILY_BACKUP_MAX_WEEK > 0 then DAILY_BACKUP_MAX_FULL and DAILY_BACKUP_MAX_FULL_WITH_INCR must be = 0
MONTHLY_BACKUP_MAX_MONTH=12 : allow to remove older backupset with duplicity remove-older-than <time>, where <time> = now + (12 * 31 days)
if MONTHLY_BACKUP_MAX_MONTH > 0 then MONTHLY_BACKUP_MAX_FULL and MONTHLY_BACKUP_MAX_FULL_WITH_INCR must be = 0
DAILY_BACKUP_MAX_FULL=0
DAILY_BACKUP_MAX_FULL_WITH_INCR=0
MONTHLY_BACKUP_MAX_FULL=0
MONTHLY_BACKUP_MAX_FULL_WITH_INCR=0
- Allow daily backup into filesystem and/or SWIFT container with TTL retention
- database backup is done if ${DB_TYPE} is defined with other DB_XXXX variables into ${DATA_FOLDER}
- filesystem backup if done on ${DATA_FOLDER}
- Allow weekly and monthly backup with associated prefix into containers and TTL retention
"--help" : display the help
"--jobber-backup" allow to schedule daily or monthly backup and into containers filesystem/swift if defined
"--backup [[daily|monthly] [filesystem|swift] [full|incr]]" : without args, run daily backup into ${DAILY_FILESYSTEM_CONTAINER} backend
"--delete-older <time>" [[daily|monthly] [filesystem|swift]] : without args, delete backup older than <time> from ${DAILY_FILESYSTEM_CONTAINER}
"--restore <time>" [[daily|monthly] [filesystem|swift]] : without args, restore backup at <time> from ${DAILY_FILESYSTEM_CONTAINER}
"--restore-latest" [[daily|monthly] [filesystem|swift]] : without args, restore lastest backup from ${DAILY_FILESYSTEM_CONTAINER}
"--restore-path xxxxx <time>" [[daily|monthly]] [filesystem|swift]] : without args, restore file xxxxx at <time> backup from ${DAILY_FILESYSTEM_CONTAINER}
"--content <time>" [[daily|monthly] [filesystem|swift]] : without args, show backup content xxxxx from ${DAILY_FILESYSTEM_CONTAINER}
"--content-latest" [[daily|monthly] [filesystem|swift]] : without args, show latest tarball content from ${DAILY_FILESYSTEM_CONTAINER}
"--list" [[daily|monthly] [filesystem|swift]] : without args, list all backups from ${DAILY_FILESYSTEM_CONTAINER}
"--cleanup" [[daily|monthly] [filesystem|swift]] : without args, cleanup ${DAILY_FILESYSTEM_CONTAINER}
"--compare <time>" [[daily|monthly] [filesystem|swift]] : without args, compare backup at <time> from ${DAILY_FILESYSTEM_CONTAINER} with ${DATA_FOLDER}
"--compare-latest" [[daily|monthly] [filesystem|swift]] : without args, compare lastest backup from ${DAILY_FILESYSTEM_CONTAINER} with ${DATA_FOLDER}
"--comapre-path xxxxx <time>" [[daily|monthly]] [filesystem|swift]] : without args, compare file xxxxx at <time> backup from ${DAILY_FILESYSTEM_CONTAINER} with ${DATA_FOLDER}