Cara Menggunakan Restic untuk Backup Terenkripsi ke Multiple Cloud Storage

Cara Menggunakan Restic untuk Backup Terenkripsi ke Multiple Cloud Storage

Kehilangan data penting karena ponsel rusak, storage penuh, atau human error adalah mimpi buruk yang nyata. Restic adalah solusi backup open-source yang menawarkan enkripsi end-to-end, deduplication otomatis, dan kemampuan menyimpan snapshot ke berbagai cloud storage sekaligus. Artikel ini akan memandu Anda menggunakan Restic di Termux untuk membuat sistem backup terenkripsi yang reliable, tanpa perlu server mahal atau setup rumit.

Mengapa Restic Cocok untuk Backup Personal

Restic dirancang dengan prinsip security-first. Setiap file dienkripsi sebelum dikirim ke storage, jadi provider cloud tidak bisa membaca isi backup Anda. Fitur deduplication-nya menghemat bandwidth dan storage dengan hanya mengirim data yang berubah. Yang paling praktis: Restic mendukung puluhan backend storage—dari S3, Backblaze B2, Google Cloud Storage, hingga SFTP dan local directory—dalam satu tool.

Untuk pengguna Termux, ini berarti Anda bisa backup data penting langsung dari ponsel ke multiple cloud tanpa aplikasi proprietary yang sering meminta akses berlebihan. Saya pribadi menggunakan kombinasi Backblaze B2 (murah untuk cold storage) dan Wasabi S3 (cepat untuk restore darurat) sebagai redundansi.

Persiapan Awal di Termux

Install Restic melalui package manager Termux:

pkg update && pkg install restic

Verifikasi instalasi dengan restic version. Anda juga perlu menyiapkan credential untuk cloud storage pilihan. Untuk contoh ini, kita gunakan Backblaze B2 karena tier gratisnya cukup generous (10GB storage, 1GB download per hari).

Buat Application Key di dashboard Backblaze B2 dengan akses terbatas hanya ke bucket tertentu. Catat keyID dan applicationKey. Jangan pernah commit credential ini ke Git atau share di forum publik.

Langkah Praktis Membuat Repository Terenkripsi

  1. Inisialisasi repository pertama di Backblaze B2: Jalankan restic -r b2:bucket-name:/backup-folder init. Restic akan meminta password untuk enkripsi. Gunakan password kuat minimal 20 karakter dan simpan di password manager. Kehilangan password ini berarti kehilangan akses ke semua backup.
  2. Set environment variables untuk credential: Buat file ~/.restic-env dengan isi export B2_ACCOUNT_ID="keyID" dan export B2_ACCOUNT_KEY="applicationKey". Jalankan source ~/.restic-env sebelum operasi backup. Pastikan file ini tidak readable oleh user lain dengan chmod 600 ~/.restic-env.
  3. Backup direktori pertama: Misalnya backup folder Termux home dengan restic -r b2:bucket-name:/backup-folder backup ~/storage/shared/Documents --exclude="*.tmp". Flag --exclude mencegah file temporary ikut ter-backup.
  4. Tambahkan repository kedua untuk redundansi: Inisialisasi repository di provider lain, misalnya Wasabi S3: restic -r s3:s3.wasabisys.com/bucket-name init. Gunakan password yang sama agar restore lebih mudah. Set credential Wasabi di environment variable AWS_ACCESS_KEY_ID dan AWS_SECRET_ACCESS_KEY.
  5. Backup ke multiple repository sekaligus: Buat script sederhana yang loop melalui semua repository. Contoh: for repo in "b2:bucket1" "s3:s3.wasabisys.com/bucket2"; do restic -r $repo backup ~/Documents; done. Ini memastikan data tersimpan di dua lokasi berbeda.
  6. Verifikasi integritas backup: Jalankan restic -r b2:bucket-name:/backup-folder check secara berkala. Command ini memvalidasi struktur repository dan mendeteksi corruption.
  7. Restore file saat dibutuhkan: List snapshot dengan restic -r b2:bucket-name:/backup-folder snapshots, lalu restore dengan restic -r b2:bucket-name:/backup-folder restore latest --target ~/restore-folder. Anda juga bisa restore file spesifik dengan flag --include.

Kesalahan yang Sering Terjadi

  • Lupa menjalankan prune secara berkala: Restic menyimpan semua snapshot sampai Anda eksplisit menghapusnya. Tanpa restic forget --keep-daily 7 --keep-weekly 4 --prune, storage akan terus membengkak. Saya pernah kehabisan quota B2 karena lupa prune selama 3 bulan.
  • Tidak test restore sebelum disaster terjadi: Backup yang tidak pernah di-test sama dengan tidak punya backup. Lakukan restore drill minimal sebulan sekali ke direktori temporary untuk memastikan prosesnya lancar.
  • Menyimpan password di plaintext script: Jangan hardcode password di shell script. Gunakan environment variable atau Termux:API untuk prompt password saat runtime. Alternatif aman: simpan password di file terenkripsi dengan GPG.
  • Backup tanpa exclude pattern: Menyertakan cache, log, atau file besar yang tidak penting akan memperlambat backup dan menghabiskan bandwidth. Buat file .restic-exclude dengan pattern seperti *.log, node_modules/, .cache/.
  • Tidak monitor backup job: Setup notifikasi sederhana dengan Termux:API atau webhook ke Discord/Telegram saat backup selesai atau gagal. Ini mencegah silent failure yang baru ketahuan saat butuh restore.

Tips Aman dan Etis

Restic adalah tool defensif untuk melindungi data Anda sendiri. Jangan gunakan untuk backup data orang lain tanpa izin, atau menyimpan konten ilegal. Beberapa praktik terbaik yang saya terapkan:

Gunakan bucket dengan lifecycle policy untuk auto-delete snapshot lama sesuai retention policy perusahaan atau pribadi. Ini mencegah akumulasi data yang tidak perlu dan mengurangi biaya storage.

Aktifkan MFA di akun cloud storage Anda. Credential yang bocor masih bisa dicegah dengan layer autentikasi tambahan. Backblaze B2 dan Wasabi mendukung MFA via TOTP.

Untuk data sensitif seperti credential atau private key, pertimbangkan enkripsi tambahan dengan GPG sebelum backup dengan Restic. Defense in depth lebih baik daripada mengandalkan satu layer enkripsi.

Jangan backup ke cloud storage yang tidak Anda percaya. Meskipun Restic mengenkripsi data, metadata seperti ukuran file dan timestamp tetap visible. Pilih provider dengan track record privacy yang baik.

Automasi Backup dengan Cron di Termux

Install cronie di Termux dengan pkg install cronie, lalu jalankan crontab -e untuk setup jadwal backup otomatis. Contoh entry untuk backup harian jam 2 pagi:

0 2 * * * source ~/.restic-env && restic -r b2:bucket:/backup backup ~/Documents >> ~/backup.log 2>&1

Log output ke file memudahkan debugging saat ada masalah. Jangan lupa jalankan crond untuk start cron daemon.

Kesimpulan

Restic memberikan kontrol penuh atas backup strategy Anda tanpa vendor lock-in. Dengan setup yang tepat, Anda bisa tidur nyenyak knowing data penting tersimpan terenkripsi di multiple cloud dengan biaya minimal. Kunci suksesnya ada di konsistensi: backup rutin, test restore berkala, dan monitor job status. Mulai dengan satu repository dulu, pahami workflow-nya, baru tambahkan redundansi ke provider kedua. Backup bukan soal teknologi paling canggih, tapi soal disiplin eksekusi.

Next Post Previous Post
No Comment
Add Comment
comment url