#!/bin/bash

DATABASES=(
  "authentik"
  "gitea"
  "mealie"
  "nextcloud"
)

# Variables
LOCATION="/home/juulk/docker/postgresql"
RETENTION=7
DATE=$(date +"%Y-%m-%d_%H-%M-%S")
BACKUP_DATE="backup-$DATE.sql"

# Dump all databases and zip dump
for database in "${DATABASES[@]}"; do
  FILE="$LOCATION/$database/$database-$BACKUP_DATE"
  docker exec -u postgres postgres pg_dump -d "$database" > "$FILE"
  gzip "$FILE"
done

# Delete old backups
find "$LOCATION" -name "*backup*.sql.gz" -type f -mtime +$RETENTION -exec rm {} \;