2018-01-02 05:03:19 +01:00
|
|
|
#!/bin/sh
|
|
|
|
|
set -e
|
|
|
|
|
|
2018-02-13 12:10:02 +01:00
|
|
|
touch /backups/backup-ongoing
|
|
|
|
|
|
2019-03-30 23:39:35 +01:00
|
|
|
REPOSITORY=ssh://backup@212.129.12.205:22/./
|
2018-01-02 05:03:19 +01:00
|
|
|
|
|
|
|
|
export BORG_PASSPHRASE='{{backup_borg_passphrase}}'
|
|
|
|
|
|
|
|
|
|
echo 'Dumping NextCloud database'
|
2019-06-08 23:53:21 +02:00
|
|
|
docker exec nextcloud_postgres_1 sh -c "pg_dump -U nextcloud nextcloud > /backups/database.dmp"
|
2018-01-02 05:03:19 +01:00
|
|
|
|
2018-07-28 02:17:47 +02:00
|
|
|
echo 'Dumping S.T.B. wordpress database'
|
|
|
|
|
docker exec stb_db_1 sh -c "mysqldump -u stb -p{{stb_mysql_password}} stb > /backups/database.dmp"
|
|
|
|
|
|
2018-01-02 05:03:19 +01:00
|
|
|
echo 'Dumping matrix database'
|
|
|
|
|
docker exec matrix_db_1 sh -c "pg_dump -U synapse synapse > /backups/database.dmp"
|
|
|
|
|
|
2019-08-16 21:46:43 +02:00
|
|
|
echo 'Dumping invidious database'
|
|
|
|
|
docker exec invidious_postgres_1 sh -c "pg_dump -U kemal invidious > /backups/database.dmp"
|
|
|
|
|
|
2018-01-02 05:03:19 +01:00
|
|
|
echo 'Copying murmur database'
|
|
|
|
|
docker stop murmur_murmur_1
|
|
|
|
|
cp /var/lib/murmur/murmur.sqlite /backups/murmur/murmur.sqlite
|
|
|
|
|
docker start murmur_murmur_1
|
|
|
|
|
|
|
|
|
|
echo 'Creating GitLab backup'
|
|
|
|
|
docker exec gitlab_gitlab_1 gitlab-rake gitlab:backup:create
|
|
|
|
|
|
|
|
|
|
echo 'Starting Borg backup'
|
|
|
|
|
borg create -v --stats --compression lz4 \
|
|
|
|
|
${REPOSITORY}::'{hostname}-{now:%Y-%m-%d}' \
|
|
|
|
|
/root \
|
2018-01-07 20:22:21 +01:00
|
|
|
/home \
|
2018-10-11 04:17:57 +02:00
|
|
|
/data \
|
2018-01-02 05:03:19 +01:00
|
|
|
/etc \
|
2018-01-07 20:22:21 +01:00
|
|
|
/var/lib/mailu \
|
|
|
|
|
/var/lib/matrix/media_store \
|
|
|
|
|
/var/lib/nextcloud \
|
2019-03-30 23:43:48 +01:00
|
|
|
/var/lib/transmission \
|
2018-01-07 20:22:21 +01:00
|
|
|
/var/lib/wiki \
|
2018-07-28 02:17:47 +02:00
|
|
|
/var/lib/stb \
|
2018-03-21 23:17:59 +01:00
|
|
|
/var/lib/nzbget \
|
2018-09-01 16:29:51 +02:00
|
|
|
/opt/factorio \
|
2018-01-02 05:03:19 +01:00
|
|
|
/backups \
|
2019-03-30 23:43:48 +01:00
|
|
|
--exclude '/var/lib/nextcloud/db'
|
2018-01-02 05:03:19 +01:00
|
|
|
|
|
|
|
|
# If there is an error backing up, reset password envvar and exit
|
|
|
|
|
if [ "$?" = "1" ] ; then
|
|
|
|
|
export BORG_PASSPHRASE=""
|
|
|
|
|
exit 1
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
# Use the `prune` subcommand to maintain 14 daily, 8 weekly and 12 monthly
|
|
|
|
|
# archives of THIS machine. The '{hostname}-' prefix is very important to
|
|
|
|
|
# limit prune's operation to this machine's archives and not apply to
|
|
|
|
|
# other machine's archives also.
|
|
|
|
|
borg prune -v --list ${REPOSITORY} --prefix '{hostname}-' \
|
|
|
|
|
--keep-daily=14 --keep-weekly=8 --keep-monthly=12
|
|
|
|
|
|
|
|
|
|
# Unset the password
|
|
|
|
|
export BORG_PASSPHRASE=""
|
|
|
|
|
|
2018-02-13 12:10:02 +01:00
|
|
|
rm -f /backups/backup-ongoing
|
2018-01-02 05:03:19 +01:00
|
|
|
touch /backups/backup-ok
|
|
|
|
|
|
|
|
|
|
exit 0
|