Tanpa backup, satu kesalahan bisa menghapus semua data Anda. Restic adalah tool backup modern yang mendukung enkripsi, deduplikasi, dan kompresi otomatis. Lebih baik dari rsync karena hemat disk space dan aman.
Kenapa Restic?
- Enkripsi otomatis — semua data terenkripsi sebelum di-upload
- Deduplikasi — hanya simpan data yang berubah (hemat disk 50-80%)
- Incremental backup — backup cepat karena hanya proses yang berubah
- Multi-backend — support local, S3, B2, SFTP, dan banyak lagi
- Snapshot — setiap backup adalah snapshot yang bisa di-restore kapan saja
Install Restic
# Ubuntu/Debian
sudo apt install restic -y
# Verifikasi
restic version
Setup Repository Backup
# Inisialisasi repository lokal
restic init --repo /backup/restic-repo
# Atau ke S3-compatible storage
restic init --repo s3:s3.amazonaws.com/my-backup-bucket
# Atau ke SFTP server
restic init --repo sftp:user@server:/backup
Backup Script
Buat script /usr/local/bin/backup.sh:
#!/bin/bash
# Backup script untuk rina.my.id
export RESTIC_REPOSITORY="/backup/restic-repo"
export RESTIC_PASSWORD_FILE="/etc/restic-password"
# Backup directory penting
restic backup /var/www /etc/caddy /opt/docker --exclude="*.log" --exclude="node_modules" --verbose
# Hapus backup lama (simpan 7 harian, 4 mingguan, 6 bulanan)
restic forget --keep-daily 7 --keep-weekly 4 --keep-monthly 6 --prune
echo "Backup selesai: $(date)"
# Buat file password
echo "your-secure-password" | sudo tee /etc/restic-password
sudo chmod 600 /etc/restic-password
# Buat script executable
sudo chmod +x /usr/local/bin/backup.sh
Setup Cron Job
# Edit crontab
sudo crontab -e
# Tambahkan baris ini (backup setiap jam 2 pagi)
0 2 * * * /usr/local/bin/backup.sh >> /var/log/restic-backup.log 2>&1
Restore dari Backup
# Lihat semua snapshots
restic snapshots
# Restore snapshot terbaru
restic restore latest --target /restore
# Restore snapshot tertentu
restic restore abc123 --target /restore
# Restore file spesifik
restic restore latest --target /restore --include "/var/www"
Backup ke Cloud (S3/B2)
# Backblaze B2 (paling murah)
export B2_ACCOUNT_ID="your-key-id"
export B2_ACCOUNT_KEY="your-app-key"
restic init --repo b2:my-bucket-name:restic-backup
restic backup /var/www --repo b2:my-bucket-name:restic-backup
Backup adalah bagian penting dari keamanan server. Untuk panduan lengkap setup server, baca self-hosting dari nol. Jika menggunakan Docker, pastikan volume juga di-backup dengan benar.