- 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>
41 lines
1.5 KiB
Bash
Executable file
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."
|