616b20f285
- init-r2-repository.sh: inicializa repositorio Kopia en R2 - run-backup.sh: ejecuta backup de rutas definidas en backup-paths.txt - pre-backup-dumps.sh: vuelca bases de datos (Postgres, MariaDB) antes del backup - kopia-common.sh: funciones compartidas de autenticación y configuración - restore-smoke-test.sh: test de restauración para verificar integridad - backup-paths.txt / excludes.txt: rutas y exclusiones del backup - systemd/: unidades kopia-server, kopia-docker-backup (service + timer) - traefik-kopia.yml: exposición del servidor Kopia vía Traefik - env.example: plantilla de variables (credenciales R2, contraseña repo) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
31 lines
865 B
Bash
Executable File
31 lines
865 B
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)"
|
|
# shellcheck disable=SC1091
|
|
source "$SCRIPT_DIR/kopia-common.sh"
|
|
|
|
require_cmd kopia
|
|
require_real_env KOPIA_PASSWORD
|
|
require_real_env KOPIA_R2_BUCKET
|
|
require_real_env KOPIA_R2_ENDPOINT
|
|
require_real_env KOPIA_R2_ACCESS_KEY_ID
|
|
require_real_env KOPIA_R2_SECRET_ACCESS_KEY
|
|
|
|
ensure_runtime_dirs
|
|
|
|
if kopia_cmd repository status >/dev/null 2>&1; then
|
|
log "Kopia repository already connected: $KOPIA_CONFIG_FILE"
|
|
exit 0
|
|
fi
|
|
|
|
log "Creating Kopia repository in Cloudflare R2 bucket $KOPIA_R2_BUCKET"
|
|
kopia_cmd repository create s3 \
|
|
--bucket="$KOPIA_R2_BUCKET" \
|
|
--endpoint="$KOPIA_R2_ENDPOINT" \
|
|
--prefix="${KOPIA_R2_PREFIX:-docker-host}" \
|
|
--access-key="$KOPIA_R2_ACCESS_KEY_ID" \
|
|
--secret-access-key="$KOPIA_R2_SECRET_ACCESS_KEY"
|
|
|
|
log "Repository created"
|