Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 4c1afea365 | |||
| 44988dfda2 |
@@ -8,6 +8,7 @@ lerna-debug.log*
|
||||
|
||||
# Dumps
|
||||
dump
|
||||
backups/
|
||||
|
||||
|
||||
# Diagnostic reports (https://nodejs.org/api/report.html)
|
||||
|
||||
@@ -18,6 +18,8 @@ services:
|
||||
- WEB_PUSH_EMAIL=${WEB_PUSH_EMAIL}
|
||||
- EMAILPASS=${EMAILPASS}
|
||||
- PORT=3001
|
||||
- COOKIE_SECURE=true
|
||||
- NODE_ENV=production
|
||||
- TRANSLATION_PROVIDER=${TRANSLATION_PROVIDER:-openai}
|
||||
- MARIAN_TRANSLATION_URL=http://translation:8000
|
||||
volumes:
|
||||
|
||||
Executable
+43
@@ -0,0 +1,43 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
APP_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
BACKUP_ROOT="${BACKUP_ROOT:-$APP_DIR/backups}"
|
||||
DB_NAME="${DB_NAME:-EMI_SOCIAL}"
|
||||
MONGO_IMAGE="${MONGO_BACKUP_IMAGE:-mongo:7}"
|
||||
KEEP_ARCHIVES="${KEEP_ARCHIVES:-12}"
|
||||
|
||||
timestamp="$(date -u +%Y%m%dT%H%M%SZ)"
|
||||
dump_name="emi_social_${timestamp}"
|
||||
archive_path="$BACKUP_ROOT/${dump_name}.tar.gz"
|
||||
|
||||
mkdir -p "$BACKUP_ROOT"
|
||||
|
||||
docker run --rm \
|
||||
--user "$(id -u):$(id -g)" \
|
||||
--env-file "$APP_DIR/.env" \
|
||||
-e DB_NAME="$DB_NAME" \
|
||||
-e DUMP_NAME="$dump_name" \
|
||||
-v "$BACKUP_ROOT:/backup" \
|
||||
"$MONGO_IMAGE" \
|
||||
bash -lc '
|
||||
set -euo pipefail
|
||||
: "${MONGO_URL:?MONGO_URL is missing}"
|
||||
|
||||
uri="$MONGO_URL"
|
||||
uri="${uri/\/myFirstDatabase?/\/${DB_NAME}?}"
|
||||
uri="${uri/\/myFirstDatabase$/\/${DB_NAME}}"
|
||||
|
||||
mongodump --uri "$uri" --db "$DB_NAME" --out "/backup/$DUMP_NAME"
|
||||
'
|
||||
|
||||
tar -czf "$archive_path" -C "$BACKUP_ROOT" "$dump_name"
|
||||
rm -rf "$BACKUP_ROOT/$dump_name"
|
||||
|
||||
find "$BACKUP_ROOT" -maxdepth 1 -name 'emi_social_*.tar.gz' -type f \
|
||||
-printf '%T@ %p\n' \
|
||||
| sort -rn \
|
||||
| awk -v keep="$KEEP_ARCHIVES" 'NR > keep { print $2 }' \
|
||||
| xargs -r rm -f
|
||||
|
||||
echo "Created MongoDB backup: $archive_path"
|
||||
Reference in New Issue
Block a user