#!/bin/bash

export BORG_REPO=/mnt/hd4tb/bak

DOCKER_BASE=/ssd/docker/container
DUMP_DIR=/ssd/dumps

/bin/mkdir -p $DUMP_DIR

# PostgreSQL Dumps (Container läuft noch)
echo "Erstelle PostgreSQL Dumps..."
/usr/bin/docker exec immich_postgres pg_dump -U postgres immich > $DUMP_DIR/immich.sql
/usr/bin/docker exec paperless-db-1 pg_dump -U paperless paperless > $DUMP_DIR/paperless.sql

# Container stoppen
echo "Stoppe Docker-Container..."
/usr/bin/docker compose -f $DOCKER_BASE/docker-compose.yml stop
/usr/bin/docker compose -f $DOCKER_BASE/paperless/docker-compose.yml stop
/usr/bin/docker compose -f $DOCKER_BASE/immich-app/docker-compose.yml stop

# SQLite Dumps (Container gestoppt, Dateien ruhig)
echo "Erstelle SQLite Dumps..."
/usr/bin/sqlite3 $DOCKER_BASE/homeassistant/home-assistant_v2.db ".backup $DUMP_DIR/homeassistant.db"
/usr/bin/sqlite3 $DOCKER_BASE/trilium-data/document.db ".backup $DUMP_DIR/trilium.db"
/usr/bin/sqlite3 $DOCKER_BASE/vw-data/db.sqlite3 ".backup $DUMP_DIR/vaultwarden.db"

# Backup
echo "Starte Backup: $(date)"
/usr/bin/borg create \
    --verbose \
    --stats \
    --compression lz4 \
    ::'{hostname}-{now:%Y-%m-%dT%H:%M}' \
    /etc \
    /ssd

# Container wieder starten
echo "Starte Docker-Container..."
/usr/bin/docker compose -f $DOCKER_BASE/immich-app/docker-compose.yml start
/usr/bin/docker compose -f $DOCKER_BASE/paperless/docker-compose.yml start
/usr/bin/docker compose -f $DOCKER_BASE/docker-compose.yml start

echo "Backup beendet: $(date)"