Ingin membackup data dengan aman dan efisien? Restic hadir sebagai solusi tepat! Ini adalah sistem backup modern yang mendukung deduplikasi dan enkripsi. Tak hanya itu, Restic bisa menyimpan backup secara lokal maupun remote, melalui koneksi SFTP atau berbagai layanan penyimpanan populer seperti Amazon S3 dan Google Cloud Storage.
Lebih menarik lagi, Restic REST Server memungkinkan Anda untuk melakukan push backup menggunakan protokol HTTP atau HTTPS ke server jarak jauh.
Penasaran bagaimana cara menggunakannya? Artikel ini akan membahas langkah demi langkah deploy dan konfigurasi Restic REST Server menggunakan Docker di Linux.
Yang Akan Anda Pelajari:
- Deploy Restic REST Server menggunakan Docker di Linux
- Konfigurasi autentikasi dan enkripsi SSL/TLS
- Instalasi dan konfigurasi Restic REST Server di Linux
Persiapan Awal
Sebelum memulai, pastikan Anda memiliki:
- Sistem operasi Linux (berjalan pada semua distro)
- Docker atau Podman terinstall
Membuat Direktori dan Kredensial
Pertama, kita perlu membuat direktori untuk menyimpan repository dan data backup. Sebagai contoh, kita akan buat direktori bernama “data” di dalam folder HOME. Direktori ini nantinya akan kita mount ke dalam container.
$ mkdir ~/data
Restic REST Server memiliki fitur autentikasi default untuk mencegah akses tidak sah. Autentikasi ini menggunakan file .htpasswd yang akan dicari oleh server di direktori penyimpanan snapshot.
Untuk membuat kredensial autentikasi, kita bisa menggunakan utilitas htpasswd. Pada Fedora dan distro berbasis Fedora, utilitas ini tersedia di package httpd-tools. Install dengan perintah berikut:
$ sudo dnf install httpd-tools
Sementara di Debian dan distro berbasis Debian, gunakan perintah ini:
$ sudo apt-get update && sudo apt-get install apache2-utils
Selanjutnya, untuk membuat file .htpasswd, jalankan perintah:
$ htpasswd -B -c ~/data/.htpasswd resticuser
Perintah ini akan membuat konfigurasi untuk mengakses server dengan username “resticuser”. Jika Anda tidak memasukkan password saat diminta, Anda akan diminta memasukkannya secara manual.
Catatan:
- Opsi
-B
akan menggunakan algoritma bcrypt untuk hashing password, yang terkenal keamanannya. - Direkomendasikan untuk menyimpan password dengan aman. Kehilangan password berarti kehilangan akses ke data backup Anda.
Menjalankan Restic REST Server dengan Docker
Restic REST Server merupakan open source software yang ditulis dengan bahasa Go. Cara termudah untuk deploy Restic REST Server adalah menggunakan Docker (atau Podman). Kita bisa menggunakan image server yang tersedia di DockerHub.
Untuk membuat dan menjalankan container Restic REST Server, gunakan perintah berikut:
$ docker run -p 8000:8000 -v ~/data:/data:z --name restic_rest_server docker.io/restic/rest-server
Mari bahas opsi yang digunakan pada perintah tersebut:
- Secara default, REST Server di dalam container berjalan pada port 8000. Opsi
-p
digunakan untuk mapping port 8000 di host ke port 8000 di dalam container. Anda bisa menggunakan port lain, tetapi disarankan untuk menggunakan port privileged (di atas 1024) jika menjalankan Docker tanpa akses root. - Opsi
-v
digunakan untuk melakukan bind mount direktori~/data
di host ke direktori/data
di dalam container. Ini penting untuk membuat backup data menjadi persistent. - Opsi
:z
(digunakan jika SELinux aktif) akan mengubah context direktori yang di-mount sehingga bisa diakses dari dalam container.
Inisialisasi Repository
Setelah menjalankan container, kita bisa menginisialisasi repository Restic menggunakan perintah berikut:
restic -r rest:http://resticuser:resticpassword@localhost:8000 init
Jika berjalan dengan lancar, Anda akan melihat pesan bahwa repository berhasil dibuat.
Perhatian: Sangat tidak disarankan untuk mengirimkan kredensial melalui koneksi HTTP biasa. Untuk keamanan lebih baik, disarankan menggunakan koneksi HTTPS dengan sertifikat SSL/TLS.
Menjalankan Server dengan SSL/TLS:
- Salin file public_key dan private_key ke direktori
~/data
di dalam container. - Jalankan container dengan opsi
--tls
melalui variable environmentOPTIONS
:
docker run -p 8000:8000 -v ~/data:/data:z -e OPTIONS="--tls" --name restic_rest_server docker.io/restic/rest-server
Menggunakan Klien Restic:
- Saat mengakses repository melalui HTTPS, gunakan opsi
--insecure-tls
pada klien Restic untuk mengabaikan verifikasi sertifikat self-signed:
restic -r rest:https://resticuser:resticpassword@localhost:8000 --insecure-tls init
Tips Tambahan:
- Untuk backup yang lebih efisien, gunakan append-only connection dengan mengaktifkan opsi
--append-only
pada klien Restic. - Anda dapat menggunakan Docker Compose untuk deploy dan konfigurasi server dengan lebih mudah.
- Selalu jaga keamanan password dan private key Anda.
Kesimpulan
Restic REST Server menawarkan solusi backup modern dan aman untuk data Anda. Dengan Docker, deploy dan konfigurasi server menjadi mudah dan cepat. Gunakan tutorial ini sebagai panduan awal untuk memulai backup data Anda dengan Restic REST Server.
Sumber Daya:
- Restic Documentation: https://restic.net/
- Docker Installation: https://docs.docker.com/get-docker/
- Let’s Encrypt: https://letsencrypt.org/getting-started/