Manage Borg backup repository for Metabase data. Use when backing up, restoring, or checking backup status.
This skill provides guidance for using Borg backup with the Metabase project.
~/.config/borg/metabase-passphrase# Set passphrase
export BORG_PASSPHRASE="$(cat ~/.config/borg/metabase-passphrase)"
# Verify connection
borg list ssh://[email protected]/var/backups/borg/metabase
# Run the backup script
/var/www/metabase/scripts/backup-metabase.sh
# Or manual borg create
export BORG_PASSPHRASE="$(cat ~/.config/borg/metabase-passphrase)"
borg create \
ssh://[email protected]/var/backups/borg/metabase::metabase-$(date +%Y%m%d-%H%M%S) \
/var/www/metabase \
--exclude '*.log' \
--exclude 'node_modules/' \
--exclude '.git/'
export BORG_PASSPHRASE="$(cat ~/.config/borg/metabase-passphrase)"
borg list ssh://[email protected]/var/backups/borg/metabase
export BORG_PASSPHRASE="$(cat ~/.config/borg/metabase-passphrase)"
borg info ssh://[email protected]/var/backups/borg/metabase::metabase-latest
export BORG_PASSPHRASE="$(cat ~/.config/borg/metabase-passphrase)"
borg list ssh://[email protected]/var/backups/borg/metabase::<archive-name>
export BORG_PASSPHRASE="$(cat ~/.config/borg/metabase-passphrase)"
# Extract to temp directory
mkdir -p /tmp/metabase-restore
cd /tmp/metabase-restore
borg extract ssh://[email protected]/var/backups/borg/metabase::<archive-name>
export BORG_PASSPHRASE="$(cat ~/.config/borg/metabase-passphrase)"
borg extract \
ssh://[email protected]/var/backups/borg/metabase::<archive-name> \
--paths /var/www/metabase/docker-compose.yml \
--paths /var/www/metabase/.env
export BORG_PASSPHRASE="$(cat ~/.config/borg/metabase-passphrase)"
borg check ssh://[email protected]/var/backups/borg/metabase
export BORG_PASSPHRASE="$(cat ~/.config/borg/metabase-passphrase)"
# Test extract to verify
borg extract --dry-run ssh://[email protected]/var/backups/borg/metabase::<archive-name>
export BORG_PASSPHRASE="$(cat ~/.config/borg/metabase-passphrase)"
# Keep daily backups for 7 days
# Keep weekly backups for 4 weeks
# Keep monthly backups for 6 months
borg prune \
ssh://[email protected]/var/backups/borg/metabase \
--keep-daily=7 \
--keep-weekly=4 \
--keep-monthly=6
Borg uses default lz4 compression. For better compression:
borg create --compression zstd ...
# Check SSH connection
ssh [email protected] "echo connected"
# Check backup directory exists
ssh [email protected] "ls /var/backups/borg/metabase"
# Verify passphrase
cat ~/.config/borg/metabase-passphrase
# Check if repo exists
ssh [email protected] "ls -la /var/backups/borg/"
/var/www/metabase/scripts/backup-metabase.sh - Main backup script/var/www/metabase/scripts/query-metabase.py - Query utilities