2 Commits

Author SHA1 Message Date
Adolfo Reyna 4c1afea365 chore(prod): preserve production compose settings 2026-08-18 18:55:54 +00:00
Adolfo Reyna 44988dfda2 Add monthly MongoDB backup script 2026-08-18 18:47:09 +00:00
4 changed files with 49 additions and 0 deletions
+1
View File
@@ -8,6 +8,7 @@ lerna-debug.log*
# Dumps # Dumps
dump dump
backups/
# Diagnostic reports (https://nodejs.org/api/report.html) # Diagnostic reports (https://nodejs.org/api/report.html)
+2
View File
@@ -18,6 +18,8 @@ services:
- WEB_PUSH_EMAIL=${WEB_PUSH_EMAIL} - WEB_PUSH_EMAIL=${WEB_PUSH_EMAIL}
- EMAILPASS=${EMAILPASS} - EMAILPASS=${EMAILPASS}
- PORT=3001 - PORT=3001
- COOKIE_SECURE=true
- NODE_ENV=production
- TRANSLATION_PROVIDER=${TRANSLATION_PROVIDER:-openai} - TRANSLATION_PROVIDER=${TRANSLATION_PROVIDER:-openai}
- MARIAN_TRANSLATION_URL=http://translation:8000 - MARIAN_TRANSLATION_URL=http://translation:8000
volumes: volumes:
+43
View File
@@ -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"
+3
View File
@@ -0,0 +1,3 @@
git pull
docker compose down
docker compose up -d