Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 27 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -120,3 +120,30 @@ DOCKER_PROXY_ENABLED=false
CN_MODE=false
CN_APT_MIRROR=https://mirrors.aliyun.com/ubuntu
CN_DOCKER_MIRROR=https://docker.m.daocloud.io

# -----------------------------------------------------------------------------
# BACKUP CONFIGURATION
# -----------------------------------------------------------------------------
BACKUP_DIR=/opt/homelab-backups # Local backup directory
BACKUP_TARGET=local # Backup target: local|s3|b2|sftp
BACKUP_RETENTION_DAYS=30 # Days to keep backups

# S3 Backup (if BACKUP_TARGET=s3)
S3_BUCKET=your-bucket-name
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_REGION=us-east-1

# Backblaze B2 (if BACKUP_TARGET=b2)
B2_BUCKET=your-b2-bucket
B2_ACCOUNT_ID=
B2_ACCOUNT_KEY=

# SFTP Backup (if BACKUP_TARGET=sftp)
SFTP_HOST=backup.example.com
SFTP_USER=backup-user
SFTP_PATH=/backups/homelab

# Backup Notifications
NTFY_SERVER=https://ntfy.sh
NTFY_TOPIC=homelab-backup
56 changes: 56 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -154,6 +154,62 @@ See [CONTRIBUTING.md](CONTRIBUTING.md) for contribution guidelines.

---

## 💾 Backup & Recovery

### Quick Backup

```bash
# 备份所有栈
./scripts/backup.sh --target all

# 仅备份媒体栈
./scripts/backup.sh --target media

# 预览备份内容 (不实际执行)
./scripts/backup.sh --target all --dry-run
```

### List & Verify Backups

```bash
# 列出所有备份
./scripts/backup.sh --list

# 验证备份完整性
./scripts/backup.sh --verify
```

### Restore from Backup

```bash
# 恢复指定备份
./scripts/backup.sh --restore 20260331_120000
```

### Backup Targets

支持多种备份目标 (通过 `.env` 中的 `BACKUP_TARGET` 配置):

- **local**: 本地目录 (默认)
- **s3**: Amazon S3 或兼容存储
- **b2**: Backblaze B2
- **sftp**: SFTP 服务器

### Automated Backups

添加到 crontab 实现自动备份:

```bash
# 每天凌晨 2 点自动备份
0 2 * * * /path/to/homelab-stack/scripts/backup.sh --target all >> /var/log/homelab-backup.log 2>&1
```

### Disaster Recovery

完整的灾难恢复文档请参考 [docs/disaster-recovery.md](docs/disaster-recovery.md)

---

## 📄 License

MIT
Loading