#!/bin/bash

HOME=/home/nathan

DOCKER=$HOME/docker
BACKUP=$HOME/backup/
DIRS=('anetwork.uk' 'aney.co.uk' 'mariadb' 'npm' 'vaultwarden')
#DIRS=('nginx' 'npm' 'umami' 'uptimekuma' 'vaultwarden')
#DIRS=( "$DOCKER"/*/ )

REMOTE=alphavps
REMOTEBACKUP=/home/nathan/backups/docker/rn2

# Run the mariadb/mysql backup script for the docker container
/bin/bash /home/nathan/docker/mariadb/scripts/backup.txt

# Backup the docker containers
# requires rdiff-backup rsync docker-compose
# also setup .ssh/config for alphavps, and add to a cronjob (as root)

for i in "${DIRS[@]}"
do
	#echo $i
	# Stop docker containers before backup incase any moving parts
	cd $DOCKER/$i
	docker compose stop
	rdiff-backup $DOCKER/$i $BACKUP/$i 
	rdiff-backup --force --remove-older-than 2M $BACKUP/$i
	docker compose start
done

# Create the remote directory for backup if it doesn't exist
ssh $REMOTE mkdir -p $REMOTEBACKUP

# Copy the backup accross
# -e ssh makes it secure
rsync -azh -e ssh \
	--delete \
	$BACKUP \
	$REMOTE:$REMOTEBACKUP

## Now backup the websites (one offs)
REMOTEBACKUP=/home/nathan/backups/websites/rn2
# Create the remote directory for backup if it doesn't exist
ssh $REMOTE mkdir -p $REMOTEBACKUP

rsync -azh -e ssh \
	--delete \
	$HOME/websites \
	$REMOTE:$REMOTEBACKUP 

## Crontab (has the backup scripts called)
REMOTEBACKUP=/home/nathan/backups/cron/rn2
# Create the remote directory for backup if it doesn't exist
ssh $REMOTE mkdir -p $REMOTEBACKUP

rsync -azh -e ssh \
	--delete \
	/var/spool/cron/crontabs \
	$REMOTE:$REMOTEBACKUP

