31 lines
974 B
Bash
Executable File
31 lines
974 B
Bash
Executable File
#!/bin/bash
|
|
set -e
|
|
|
|
BACKUP_DIR="/backup/$(date +%Y%m%d_%H%M%S)"
|
|
mkdir -p "$BACKUP_DIR"
|
|
|
|
echo "=== Homelab Backup ==="
|
|
echo "Backup directory: $BACKUP_DIR"
|
|
|
|
# Backup PostgreSQL databases
|
|
echo "[1/4] Backing up PostgreSQL databases..."
|
|
sudo -u postgres pg_dump mattermost > "$BACKUP_DIR/mattermost.sql"
|
|
sudo -u postgres pg_dump synapse > "$BACKUP_DIR/synapse.sql"
|
|
sudo -u postgres pg_dump mastodon_production > "$BACKUP_DIR/mastodon.sql"
|
|
|
|
# Backup Mastodon media
|
|
echo "[2/4] Backing up Mastodon media..."
|
|
tar -czf "$BACKUP_DIR/mastodon_media.tar.gz" -C /opt/mastodon public/system 2>/dev/null || true
|
|
|
|
# Backup Mattermost data
|
|
echo "[3/4] Backing up Mattermost data..."
|
|
tar -czf "$BACKUP_DIR/mattermost_data.tar.gz" -C /opt/mattermost data config 2>/dev/null || true
|
|
|
|
# Backup Matrix/Synapse
|
|
echo "[4/4] Backing up Matrix data..."
|
|
tar -czf "$BACKUP_DIR/synapse_data.tar.gz" -C /opt synapse 2>/dev/null || true
|
|
|
|
echo ""
|
|
echo "Backup complete: $BACKUP_DIR"
|
|
ls -lh "$BACKUP_DIR"
|