#!/usr/bin/env sh set -eu BACKUP_DIR="${BACKUP_DIR:-./data/backups}" RETENTION_DAYS="${BACKUP_RETENTION_DAYS:-14}" UPLOAD_DIR="${UPLOAD_DIR:-/app/uploads}" PROMPT_DIR="${PROMPT_DIR:-/app/prompts}" timestamp="$(date -u +%Y%m%d-%H%M%S)" postgres_file="postgres-${timestamp}.dump" manifest_file="backup-${timestamp}.manifest" mkdir -p "${BACKUP_DIR}" : "${POSTGRES_HOST:=postgres}" : "${POSTGRES_PORT:=5432}" if [ -z "${POSTGRES_DB:-}" ] || [ -z "${POSTGRES_USER:-}" ] || [ -z "${POSTGRES_PASSWORD:-}" ]; then echo "POSTGRES_DB, POSTGRES_USER, and POSTGRES_PASSWORD must be set." >&2 exit 1 fi if ! command -v pg_dump >/dev/null 2>&1; then echo "pg_dump is not installed in this environment." >&2 exit 1 fi PGPASSWORD="${POSTGRES_PASSWORD}" pg_dump \ -h "${POSTGRES_HOST}" \ -p "${POSTGRES_PORT}" \ -U "${POSTGRES_USER}" \ -d "${POSTGRES_DB}" \ -Fc \ > "${BACKUP_DIR}/${postgres_file}" cat > "${BACKUP_DIR}/${manifest_file}" <