- /roles/snikket/defaults/main.yml - /roles/snikket/tasks/main.yml - /roles/snikket/handlers/main.yml - /roles/snikket/templates/nginx-custom.conf.j2 - /roles/snikket/templates/backup.sh.j2 - /roles/snikket/templates/docker-compose.yml.j2 - /roles/snikket/templates/snikket.conf.j2 - /group_vars/all.yml - /vault.yml
31 lines
1.0 KiB
Django/Jinja
31 lines
1.0 KiB
Django/Jinja
#!/bin/bash
|
|
|
|
set -e
|
|
|
|
BACKUP_DIR="{{ snikket_backup_dir }}"
|
|
DATA_DIR="{{ snikket_data_dir }}"
|
|
CONFIG_DIR="{{ snikket_base_dir }}"
|
|
TIMESTAMP=$(date +%F-%H%M)
|
|
RETENTION_DAYS={{ snikket_backup_retention_days }}
|
|
|
|
echo "[$(date)] Starting Snikket backup..."
|
|
|
|
mkdir -p "$BACKUP_DIR"
|
|
|
|
echo "Backing up data..."
|
|
tar czf "$BACKUP_DIR/snikket-data-$TIMESTAMP.tar.gz" \
|
|
-C "$(dirname "$DATA_DIR")" \
|
|
"$(basename "$DATA_DIR")"
|
|
|
|
echo "Backing up configs..."
|
|
cp "$CONFIG_DIR/snikket.conf" "$BACKUP_DIR/snikket.conf-$TIMESTAMP"
|
|
cp "$CONFIG_DIR/docker-compose.yml" "$BACKUP_DIR/docker-compose.yml-$TIMESTAMP"
|
|
cp "{{ snikket_nginx_custom_dir }}/snikket.conf" "$BACKUP_DIR/nginx-custom.conf-$TIMESTAMP"
|
|
|
|
echo "Cleaning up backups older than $RETENTION_DAYS days..."
|
|
find "$BACKUP_DIR" -name "snikket-*.tar.gz" -mtime +$RETENTION_DAYS -delete
|
|
find "$BACKUP_DIR" -name "*.conf-*" -mtime +$RETENTION_DAYS -delete
|
|
|
|
echo "[$(date)] Backup completed successfully"
|
|
echo "Backup location: $BACKUP_DIR"
|
|
du -sh "$BACKUP_DIR" |