mirror of
https://github.com/MatthewL246/pretendo-docker.git
synced 2026-04-14 04:45:47 -05:00
47 lines
1.5 KiB
Bash
Executable File
47 lines
1.5 KiB
Bash
Executable File
#! /bin/sh
|
|
|
|
set -eu
|
|
|
|
git_base=$(git rev-parse --show-toplevel)
|
|
. "$git_base/scripts/.function-lib.sh"
|
|
|
|
backup_name="${1-}"
|
|
if [ -z "$backup_name" ]; then
|
|
backup_name="backup_$(date +%Y-%m-%dT%H.%M.%S)"
|
|
fi
|
|
|
|
backup_dir="$git_base/backups/$backup_name"
|
|
if [ -d "$backup_dir" ]; then
|
|
error "Backup directory $backup_dir already exists."
|
|
fi
|
|
mkdir -p "$backup_dir"
|
|
info "Backing up to $backup_dir"
|
|
|
|
docker compose up -d mitmproxy-pretendo mongodb postgres minio redis
|
|
|
|
info "Backing up MongoDB..."
|
|
docker compose exec mongodb rm -rf /tmp/backup
|
|
docker compose exec mongodb mongodump -o /tmp/backup --quiet
|
|
docker compose cp mongodb:/tmp/backup "$backup_dir/mongodb"
|
|
docker compose exec mongodb rm -rf /tmp/backup
|
|
|
|
info "Backing up Postgres..."
|
|
docker compose exec postgres sh -c 'pg_dumpall -U "$POSTGRES_USER" --clean' >"$backup_dir/postgres.sql"
|
|
|
|
info "Backing up MinIO..."
|
|
docker compose exec minio sh -c 'mc alias set minio http://minio.pretendo.cc "$MINIO_ROOT_USER" "$MINIO_ROOT_PASSWORD"'
|
|
docker compose exec minio rm -rf /tmp/backup
|
|
docker compose exec minio mkdir -p /tmp/backup
|
|
docker compose exec minio mc mirror minio/ /tmp/backup
|
|
docker compose cp minio:/tmp/backup "$backup_dir/minio"
|
|
docker compose exec minio rm -rf /tmp/backup
|
|
|
|
info "Backing up Redis..."
|
|
docker compose exec redis redis-cli save
|
|
docker compose cp redis:/data/dump.rdb "$backup_dir/redis.rdb"
|
|
|
|
info "Backing up Mitmproxy..."
|
|
docker compose cp mitmproxy-pretendo:/home/mitmproxy/.mitmproxy "$backup_dir/mitmproxy"
|
|
|
|
success "Backup completed successfully."
|