mirror of
https://github.com/Steffo99/backup-duplicity.git
synced 2024-12-22 03:34:17 +00:00
Add NTFY support
This commit is contained in:
parent
1b4f138db3
commit
5229f32497
5 changed files with 82 additions and 39 deletions
|
@ -5,7 +5,7 @@ FROM alpine:latest AS final
|
|||
# RUN pacman --noconfirm -Syu duplicity python-pip python-pydrive2
|
||||
ENV CARGO_NET_GIT_FETCH_WITH_CLI=true
|
||||
RUN \
|
||||
apk add py3-pip python3-dev gcc libffi-dev musl-dev openssl-dev pkgconfig duplicity rust cargo git && \
|
||||
apk add py3-pip python3-dev gcc libffi-dev musl-dev openssl-dev pkgconfig duplicity rust cargo git curl && \
|
||||
pip install --upgrade pip && \
|
||||
pip install pydrive2 && \
|
||||
apk del rust musl-dev libffi-dev gcc python3-dev cargo git pkgconfig openssl-dev
|
||||
|
@ -32,3 +32,5 @@ LABEL org.opencontainers.image.authors="Stefano Pigozzi <me@steffo.eu>"
|
|||
# Configure duplicity
|
||||
ENV DUPLICITY_FULL_IF_OLDER_THAN=1M
|
||||
|
||||
ENV NTFY=""
|
||||
ENV NTFY_TAGS=""
|
||||
|
|
39
backup.sh
39
backup.sh
|
@ -8,8 +8,47 @@ set -e
|
|||
export PASSPHRASE=$(cat "${DUPLICITY_PASSPHRASE_FILE}")
|
||||
|
||||
echo "Launched in backup mode, performing backup..." >> /dev/stderr
|
||||
|
||||
if [ -n "${NTFY}" ]; then
|
||||
echo "Sending ntfy backup start notification..." >> /dev/stderr
|
||||
curl "${NTFY}" \
|
||||
--silent \
|
||||
--header "X-Title: Backup started" \
|
||||
--data "Duplicity is attempting to perform a backup to **${DUPLICITY_TARGET_URL}**..." \
|
||||
--header "X-Priority: min" \
|
||||
--header "X-Tags: arrow_heading_up,${NTFY_TAGS}" \
|
||||
--header "Content-Type: text/markdown"
|
||||
fi
|
||||
|
||||
duplicity \
|
||||
--allow-source-mismatch \
|
||||
--full-if-older-than "${DUPLICITY_FULL_IF_OLDER_THAN}" \
|
||||
/mnt \
|
||||
"${DUPLICITY_TARGET_URL}"
|
||||
|
||||
backup_result=$?
|
||||
|
||||
if [ -n "${NTFY}" ]; then
|
||||
case "$backup_result" in
|
||||
0)
|
||||
echo "Sending ntfy backup complete notification..." >> /dev/stderr
|
||||
curl "${NTFY}" \
|
||||
--silent \
|
||||
--header "X-Title: Backup complete" \
|
||||
--data "Duplicity has successfully performed a backup to **${DUPLICITY_TARGET_URL}**!" \
|
||||
--header "X-Priority: low" \
|
||||
--header "X-Tags: white_check_mark,${NTFY_TAGS}" \
|
||||
--header "Content-Type: text/markdown"
|
||||
;;
|
||||
*)
|
||||
echo "Sending ntfy backup failed notification..." >> /dev/stderr
|
||||
curl "${NTFY}" \
|
||||
--silent \
|
||||
--header "X-Title: Backup failed" \
|
||||
--data "Duplicity failed to perform a backup to **${DUPLICITY_TARGET_URL}**, and exited with status code **${backup_result}**." \
|
||||
--header "X-Priority: max" \
|
||||
--header "X-Tags: sos,${NTFY_TAGS}" \
|
||||
--header "Content-Type: text/markdown"
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
|
|
@ -22,6 +22,8 @@ services:
|
|||
DUPLICITY_PASSPHRASE_FILE: "/run/secrets/duplicity_passphrase"
|
||||
DUPLICITY_TARGET_URL: "pydrive://641079776729-90s4tnli0ao913ajrpv8cp3c4kkk77j5.apps.googleusercontent.com/Duplicity/this"
|
||||
GOOGLE_DRIVE_SETTINGS: "/run/secrets/google_client_config"
|
||||
NTFY: "https://ntfy.sh/garasauto"
|
||||
NTFY_TAGS: "garasauto"
|
||||
secrets:
|
||||
- google_client_config
|
||||
- duplicity_passphrase
|
||||
|
|
Loading…
Reference in a new issue