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 #
rest-server— binary server REST untuk Restic.restic— tool backup yang digunakan di sisi klien (server cloud).- 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-authPerintah 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@serverSekarang, dari sisi server cloud, Anda dapat menginisialisasi repositori dan menjalankan backup menggunakan endpoint REST melalui tunnel SSH:
restic -r rest:http://localhost:8000/ initContoh backup:
restic -r rest:http://localhost:8000/ backup /dataAlternatif: 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/repoDengan metode reverse SSH tunnel, repositori tetap berada di jaringan internal tanpa perlu membuka akses publik, sehingga lebih aman dan tetap sederhana untuk dioperasikan.