Inisialisasi repository adalah pintu masuk pertama ke restic: `restic init` untuk backend lokal dan S3, pemakaian `--repository-file` untuk menyimpan URL repo di file, serta pengelolaan password repository yang aman via env, gpg, atau secret manager agar data kalian tidak terkunci selamanya.

Di episode 2 kalian memahami arsitektur tiga pilar: repository, snapshot, dan chunking. Sekarang saatnya membangun pilar pertama — repository sungguhan. Inisialisasi adalah langkah yang hanya dilakukan sekali, tapi kesalahan di sini (terutama soal password) berbuah bencana jangka panjang.
Prinsip yang harus diingat: restic init membuat struktur repository dan kunci enkripsi yang dilindungi password. Setelah ini, password adalah segalanya.
Sebelum semua perintah restic, biasakan meng-export dua variabel agar perintah tidak perlu mengulang flag:
export RESTIC_REPOSITORY=/backup/restic
export RESTIC_PASSWORD='h4sH-yang-sangat-Panjang-dan-Unik'RESTIC_REPOSITORY menggantikan -r, dan RESTIC_PASSWORD menghindari prompt interaktif — wajib saat dipakai di cron atau systemd (episode 9).
Inisialisasi backend lokal cukup satu perintah:
restic init --repo /backup/resticcreated restic repository 2223e26e6b at /backup/restic
Please note that knowledge of your password is required to access
the repository. Losing your password means that your data is
irrecoverably lost.Tanpa RESTIC_PASSWORD, restic akan meminta password dua kali. Catatan di output bukan basa-basi — lupa password = data hilang permanen, bahkan restic sendiri tidak punya backdoor.
Untuk backend S3-compatible (MinIO, AWS S3, GCS, Azure), tujuannya URL bucket:
export AWS_ACCESS_KEY_ID=minioadmin
export AWS_SECRET_ACCESS_KEY=minioadmin
restic init -r s3:https://minio.example.com/backup-bucketBucket harus sudah ada; restic tidak membuatkannya otomatis. Untuk S3 publik seperti AWS, pakai endpoint regional:
restic init -r s3:s3.ap-southeast-1.amazonaws.com/backup-bucketPerbedaan backend dan contoh konfigurasinya dibahas lengkap di episode 7.
Alih-alih menulis URL di tiap command atau env, simpan di file (misal /etc/restic/repo):
restic --repository-file /etc/restic/repo initIsi file cukup satu baris: URL repository. Ini memudahkan konfigurasi terpusat dan pemisahan repository antar script.
Password repository adalah kunci seluruh data. Beberapa pola penyimpanan dari yang paling sederhana sampai enterprise:
export RESTIC_PASSWORD="$(cat /etc/restic/passphrase)"gpg -c /etc/restic/passphrase
export RESTIC_PASSWORD_FILE=/etc/restic/passphrase.gpgRESTIC_PASSWORD_FILE membuat restic mendekripsi file berisi password dengan gpg pada setiap pemakaian.
Untuk production, simpan di Vault/OpenBao, AWS Secrets Manager, atau password manager, lalu injeksi sebagai environment saat proses backup berjalan.
Warning
Jangan pernah menulis password repository ke dalam script yang masuk git atau file config yang terbaca publik. Jika password terpapar, data tetap aman dari pembacaan — tapi attacker yang menulis ke repository bisa meracuni riwayat snapshot. Bila ini terjadi, segera ganti password dengan restic key passwd (episode 13).
repository master key and config already initialized atau error serupa. Selalu pakai direktori/bucket kosong khusus repository.RESTIC_PASSWORD — biasanya karena variabel tidak di-export atau typo nama.repository master key and config already initialized hanya jika terulang; error awal biasanya AccessDenied atau NoSuchBucket — buat bucket dulu.restic init membuat repository + kunci enkripsi yang dilindungi password.RESTIC_REPOSITORY dan RESTIC_PASSWORD untuk menghindari prompt berulang.restic -r s3:... init, pastikan bucket sudah dibuat.--repository-file memisahkan konfigurasi repo dari command.Di episode 4 selanjutnya kita menjalankan backup pertama & snapshot — membackup direktori dengan tag dan exclude, lalu membaca hasilnya lewat restic snapshots, restic stats, dan restic ls. Repository kalian akan mulai hidup.