feat: complete v0.2 source and sync management
This commit is contained in:
@@ -0,0 +1,18 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
# Creates a consistent SQLite backup through the running web container, then archives Hub uploads.
|
||||
root_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
cd "$root_dir"
|
||||
stamp="$(date +%Y%m%d-%H%M%S)"
|
||||
backup_dir="data/backups/$stamp"
|
||||
mkdir -p "$backup_dir"
|
||||
|
||||
docker compose exec -T -e BACKUP_PATH="/app/data/backups/$stamp/hub.db" web node -e '
|
||||
const Database = require("better-sqlite3");
|
||||
const db = new Database(process.env.DATABASE_PATH);
|
||||
db.backup(process.env.BACKUP_PATH).then(() => db.close()).catch((error) => { console.error(error); process.exit(1); });
|
||||
'
|
||||
|
||||
tar -czf "$backup_dir/uploads.tar.gz" -C public uploads
|
||||
printf 'Created backup: %s\n' "$backup_dir"
|
||||
Reference in New Issue
Block a user