Skip to content

feat(backup): implement backup & disaster recovery — Duplicati + Restic + backup script + DR docs#495

Open
Lucaaaaaaaaaaaaaaaaaaaaa wants to merge 1 commit into
illbnm:masterfrom
Lucaaaaaaaaaaaaaaaaaaaaa:backup-dr-stack
Open

feat(backup): implement backup & disaster recovery — Duplicati + Restic + backup script + DR docs#495
Lucaaaaaaaaaaaaaaaaaaaaa wants to merge 1 commit into
illbnm:masterfrom
Lucaaaaaaaaaaaaaaaaaaaaa:backup-dr-stack

Conversation

@Lucaaaaaaaaaaaaaaaaaaaaa
Copy link
Copy Markdown

Summary

Implements the complete Backup & Disaster Recovery Stack per issue #12 requirements.

Services (pinned versions)

Service Image Port Subdomain
Duplicati lscr.io/linuxserver/duplicati:2.0.8 8200 backup.<DOMAIN>
Restic REST Server restic/rest-server:0.13.0 8000 restic.<DOMAIN>

Key Features

  • 3-2-1 backup strategy: 3 copies, 2 media types, 1 offsite
  • backup-v2.sh script with full CLI interface:
    • --target all|media|storage|databases|config — per-stack backup
    • --dry-run — preview without executing
    • --list — list available backups
    • --verify — check backup integrity (tar.gz + gzip validation)
    • --restore <backup_id> — restore from specific backup
    • --notify — ntfy push notification on completion/failure
  • Multi-target support: local, S3/MinIO, Backblaze B2, SFTP
  • Duplicati: Encrypted cloud backup with Web UI, AES-256
  • Restic REST: Append-only mode for secure local repository
  • docs/disaster-recovery.md: Full bare-metal recovery procedure
    • Recovery order: Base → DB → SSO → Others
    • Estimated RTO: ~1-1.5 hours
    • Verification checklist
  • Cron + systemd timer examples for scheduled backups
  • Healthchecks on all services
  • No hardcoded secrets

Closes #12

Generated/reviewed with: claude-opus-4-6

…+ Restic

- Duplicati 2.0.8 with Web UI for encrypted cloud backups
- Restic REST Server 0.13.0 with append-only mode for local repo
- backup-v2.sh: full 3-2-1 backup script supporting:
  - --target all|media|storage|databases|config (per-stack backup)
  - --dry-run, --list, --verify, --restore <backup_id>
  - --notify via ntfy for backup completion/failure
  - Config + volume + database dump backup
  - Retention-based cleanup
  - Multi-target: local, S3/MinIO, Backblaze B2, SFTP
- docs/disaster-recovery.md: full bare-metal recovery procedure
  - Recovery order: Base → DB → SSO → Others
  - Estimated RTO: ~1-1.5 hours
  - Verification checklist
- Complete .env.example and README with cron/systemd setup
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[BOUNTY $150] Backup & DR — 自动备份 + 灾难恢复

1 participant