#!/usr/bin/env bash set -euo pipefail # S3-compatible backup upload (UpCloud Objects, MinIO, Wasabi, etc.) # Uses: minio/mc # Env: S3_ENDPOINT, AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, S3_BUCKET BACKUP_FILE="${1:?Usage: $0 }" TIMESTAMP=$(date +%Y%m%d-%H%M%S) KEY="gitea-dump-${TIMESTAMP}.zip" mc alias set s3 "${S3_ENDPOINT}" "${AWS_ACCESS_KEY_ID}" "${AWS_SECRET_ACCESS_KEY}" echo "Uploading ${KEY}..." mc cp "$BACKUP_FILE" "s3/${S3_BUCKET}/${KEY}" echo "Upload complete." # Prune backups older than 7 days echo "Pruning backups older than 7 days..." mc rm --older-than 7d --force "s3/${S3_BUCKET}/" 2>&1 || true echo "Pruning complete."