site-mariage/scripts/backup.sh
Corentin Joguet b0030246e4 chore: package de deploiement prod (Dockerfile, compose, backup/restore, guide)
- Dockerfile multi-stage (build Astro -> runtime node standalone)
- docker-compose.prod.yml : Astro builde, ports bindes 127.0.0.1, secrets requis
- .env.prod.example : template de prod avec generation des secrets
- scripts/backup.sh + restore.sh : migration base Directus + photos
- DEPLOY.md : guide pas a pas
- .dockerignore : exclusion du .env (anti-fuite de secrets)
- untrack du tool-log BYAN (churn)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-15 11:00:52 +02:00

41 lines
1.5 KiB
Bash
Executable file

#!/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-<date>.sql.gz : dump complet Postgres (textes, series, contacts)
# - uploads-<date>.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:-laurel-vow-postgres}"
DIRECTUS_CONTAINER="${DIRECTUS_CONTAINER:-laurel-vow-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."