Files
linux-install-helper/gitea/backup.sh
2025-05-15 17:48:49 +02:00

38 lines
890 B
Bash
Executable File

#!/bin/bash
# Note: use rclone for backup, needs manually configuration.
export XDG_RUNTIME_DIR="/run/user/$(id -u)"
export DBUS_SESSION_BUS_ADDRESS="unix:path=$XDG_RUNTIME_DIR/bus"
DATA=""
CONFIG=""
DB=""
LOCAL_BACKUP="$HOME/.local/backup"
REMOTE=""
DB_USERNAME=""
DB_PASSWORD=""
DB_DATABASE=""
CONTAINER_DB=""
SERVICE_GITEA=""
STAGING_DIR=$(mktemp -d)
mkdir -p $LOCAL_BACKUP
DATE=$(date +%F-%H-%M-%S)
BACKUP_NAME="backup_$DATE.tar.gz"
systemctl --user stop $SERVICE_GITEA
podman exec $CONTAINER_DB pg_dump -U $DB_USERNAME -F c -d $DB_DATABASE > $STAGING_DIR/db.dump
cp -r "$DATA" "$STAGING_DIR/data"
cp -r "$CONFIG" "$STAGING_DIR/config"
tar -czf "$LOCAL_BACKUP/$BACKUP_NAME" -C "$STAGING_DIR" .
ls -1t "$LOCAL_BACKUP"/backup_*.tar.gz | tail -n +6 | xargs -r rm --
/usr/bin/rclone sync $LOCAL_BACKUP $REMOTE > /dev/null
rm -rf $STAGING_DIR
systemctl --user start $SERVICE_GITEA