#!/usr/bin/env bash # ============================================================ # backup.sh — emporte TON CONTENU (base Directus + photos) # # A lancer la ou la stack tourne deja (ta machine locale). # Produit dans ./backups/ : # - db-.sql.gz : dump complet Postgres (textes, series, contacts) # - uploads-.tar.gz : toutes les photos uploadees dans Directus # # Usage : bash scripts/backup.sh # Conteneurs (override si besoin) : # PG_CONTAINER=... DIRECTUS_CONTAINER=... bash scripts/backup.sh # ============================================================ set -euo pipefail cd "$(dirname "$0")/.." # Charge .env pour POSTGRES_USER / POSTGRES_DB if [ -f .env ]; then set -a; . ./.env; set +a; fi PG_CONTAINER="${PG_CONTAINER:-mostuki-postgres}" DIRECTUS_CONTAINER="${DIRECTUS_CONTAINER:-mostuki-directus}" PG_USER="${POSTGRES_USER:-directus}" PG_DB="${POSTGRES_DB:-directus}" STAMP="$(date +%Y%m%d-%H%M%S)" OUT="backups" mkdir -p "$OUT" echo "==> Dump base Postgres ($PG_CONTAINER / db=$PG_DB)" docker exec "$PG_CONTAINER" pg_dump -U "$PG_USER" "$PG_DB" | gzip > "$OUT/db-$STAMP.sql.gz" echo "==> Archive des photos (uploads Directus)" # /directus/uploads est le chemin des fichiers dans le conteneur Directus docker exec "$DIRECTUS_CONTAINER" tar czf - -C /directus/uploads . > "$OUT/uploads-$STAMP.tar.gz" echo "" echo "OK. Fichiers crees :" ls -lh "$OUT/db-$STAMP.sql.gz" "$OUT/uploads-$STAMP.tar.gz" echo "" echo "Transfere ces 2 fichiers sur le serveur, puis lance scripts/restore.sh la-bas."