Skip to main content

Setup Backup dengan Restic REST Server

Restic menyediakan binary rest-server yang dapat diunduh secara resmi melalui GitHub Restic REST Server Releases. Panduan ini akan menunjukan cara menjalankan rest-server pada host internal sebagai server repositori, lalu menghubungkannya secara aman melalui reverse SSH tunnel.

Pendekatan ini memungkinkan server cloud melakukan backup ke repositori lokal tanpa perlu mengekspos server repositori ke jaringan publik.

Prasyarat
#

  1. rest-server — binary server REST untuk Restic.
  2. restic — tool backup yang digunakan di sisi klien (server cloud).
  3. Akses SSH dari host internal ke server cloud.

Implementasi
#

Jalankan rest-server di host internal:

rest-server --listen localhost:8000 --path /path/to/repo --no-auth

Perintah tersebut akan:

  • Menjalankan layanan hanya pada interface lokal (localhost)
  • Membuka layanan di port 8000
  • Menentukan lokasi penyimpanan repositori pada /path/to/repo

Karena service hanya bind ke localhost, layanan tidak dapat diakses langsung dari jaringan luar.

Selanjutnya, buat reverse SSH tunnel agar port 8000 di server cloud diteruskan ke rest-server yang berjalan di host internal:

ssh -R 8000:localhost:8000 user@server

Sekarang, dari sisi server cloud, Anda dapat menginisialisasi repositori dan menjalankan backup menggunakan endpoint REST melalui tunnel SSH:

restic -r rest:http://localhost:8000/ init

Contoh backup:

restic -r rest:http://localhost:8000/ backup /data

Alternatif: Menggunakan Rclone
#

Selain rest-server, Anda juga dapat menggunakan Rclone untuk menyediakan endpoint REST yang kompatibel dengan Restic:

rclone serve restic --addr localhost:8000 /path/to/repo

Dengan metode reverse SSH tunnel, repositori tetap berada di jaringan internal tanpa perlu membuka akses publik, sehingga lebih aman dan tetap sederhana untuk dioperasikan.

Related