Add comprehensive backup and restore infrastructure
- scripts/borg-backup.sh: Complete disaster recovery backup (PostgreSQL, Docker volumes, configs, SSL certs, DKIM keys) - scripts/borg-restore.sh: Automated restore from Borg backups with manual verification steps - scripts/rollback.sh: Quick application rollback using Docker image tags - Enhanced setup.sh with BorgBackup installation and cron job setup - Updated README with detailed backup strategy documentation (2-tier: SQLite + Borg) Backup retention: 7 daily + 4 weekly + 3 monthly Borg archives + 7 days SQLite snapshots
This commit is contained in:
parent
3820d7ea4d
commit
76c1cc3bfb
4 changed files with 384 additions and 6 deletions
|
|
@ -151,17 +151,32 @@ sed -i "s/docfast\.dev/$DOMAIN/g" /etc/opendkim.conf 2>/dev/null || true
|
|||
# Restart services with new configs
|
||||
systemctl restart postfix opendkim
|
||||
|
||||
# Setup backup directory and script
|
||||
# Install BorgBackup
|
||||
log "Installing BorgBackup..."
|
||||
apt install -y borgbackup
|
||||
|
||||
# Setup backup directories and scripts
|
||||
log "Setting up backup system..."
|
||||
mkdir -p "$BACKUP_DIR"
|
||||
cp ../scripts/docfast-backup.sh /opt/docfast-backup.sh || warn "Backup script not found"
|
||||
chmod +x /opt/docfast-backup.sh
|
||||
mkdir -p /opt/borg-backups
|
||||
|
||||
# Add backup cron job
|
||||
# Copy backup scripts
|
||||
cp ../scripts/docfast-backup.sh /opt/docfast-backup.sh || warn "SQLite backup script not found"
|
||||
cp ../scripts/borg-backup.sh /opt/borg-backup.sh || warn "Borg backup script not found"
|
||||
cp ../scripts/borg-restore.sh /opt/borg-restore.sh || warn "Borg restore script not found"
|
||||
cp ../scripts/rollback.sh /opt/rollback.sh || warn "Rollback script not found"
|
||||
|
||||
chmod +x /opt/docfast-backup.sh /opt/borg-backup.sh /opt/borg-restore.sh /opt/rollback.sh
|
||||
|
||||
# Add backup cron jobs
|
||||
if ! crontab -l 2>/dev/null | grep -q docfast-backup; then
|
||||
(crontab -l 2>/dev/null; echo "0 */6 * * * /opt/docfast-backup.sh >> /var/log/docfast-backup.log 2>&1") | crontab -
|
||||
fi
|
||||
|
||||
if ! crontab -l 2>/dev/null | grep -q borg-backup; then
|
||||
(crontab -l 2>/dev/null; echo "0 3 * * * /opt/borg-backup.sh >> /var/log/borg-backup.log 2>&1") | crontab -
|
||||
fi
|
||||
|
||||
# Setup application directory
|
||||
log "Setting up application directory..."
|
||||
mkdir -p "$INSTALL_DIR"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue