Container Docker Terhapus, Begini FreshRSS Hidup Lagi Berkat Cadangan OPML

FreshRSS sempat hilang total setelah container Docker yang paling penting terhapus, tetapi layanan itu akhirnya bisa dihidupkan lagi dari awal. Kunci pemulihannya bukan pada Docker sendiri, melainkan pada cadangan data langganan yang sudah disiapkan sebelumnya.

Kejadian itu bermula ketika ruang penyimpanan hard drive menyusut dengan cepat. Pemeriksaan penggunaan disk menunjukkan bahwa ruang banyak habis oleh build cache, image aktif, image tidak aktif, container, dan volume yang terhubung dengan Docker.

Pembersihan yang berujung kehilangan layanan

Awalnya, Docker diduga sebagai penyebab utama karena mesin tersebut dipakai hampir eksklusif untuk bereksperimen selama satu minggu penuh. Perintah docker system df memperlihatkan build cache memakan ruang besar, sementara ada pula sejumlah image dan container yang sudah tidak aktif.

Di tahap ini, langkah yang lebih aman sebenarnya sudah tersedia. Perintah seperti docker image prune --all dan docker builder prune bisa dipakai untuk membersihkan ruang, dengan catatan bahwa opsi --all akan menghapus semua image yang tidak memiliki minimal satu container terkait.

Namun, pembersihan kemudian berubah menjadi masalah yang lebih besar ketika container FreshRSS ikut terhapus dengan perintah yang memuat rm. Akibatnya, seluruh instalasi FreshRSS lenyap dari sistem, bukan sekadar berhenti berjalan.

Mengapa container itu tidak bisa dipulihkan

Dalam Docker, image adalah template yang berisi dependensi, library, tool sistem, dan kode aplikasi. Container adalah instance yang dijalankan dari image tersebut, sehingga saat container dihapus, instance yang sudah ada memang tidak bisa dibangkitkan kembali.

Itulah sebabnya FreshRSS tidak dapat dimuat lagi setelah penghapusan terjadi. Pada awalnya, situasi itu sempat dianggap hanya sebagai layanan yang mati, tetapi ternyata aplikasi lengkapnya sudah hilang.

Cadangan yang menyelamatkan proses pemulihan

Untungnya, ada rencana cadangan yang telah disiapkan lebih dulu. Instalasi FreshRSS kemudian dibangun ulang dari nol dengan alur yang sama seperti saat pertama kali memasangnya, kali ini menggunakan Docker Compose.

Setelah image baru selesai dibuat, akun pengguna baru dibuat terlebih dahulu. Setelah itu, menu Subscription Management > Import/Export > Import digunakan untuk memilih file OPML, lalu seluruh RSS feed dari instalasi sebelumnya berhasil dimasukkan kembali.

TahapLangkahHasil
Pemulihan awalMembangun ulang FreshRSS dengan Docker ComposeInstalasi siap digunakan kembali
Impor dataMemakai menu Import dengan file OPMLSeluruh feed lama masuk kembali
Cadangan lanjutanMenyiapkan ekspor OPML secara rutinSalinan feed tetap tersedia

Pengaturan baru dan kebiasaan cadangan

Setelah layanan kembali aktif, beberapa pengaturan juga diubah. Opsi seperti Hide articles after reading dan Clicking outside of article text area closes the article dipilih karena dinilai lebih baik dibanding konfigurasi sebelumnya.

Di sisi cadangan, file OPML juga diekspor melalui Subscription Management > Import/Export > Export. File itu kemudian diunduh dalam bentuk ZIP agar salinan feed tetap aman jika kejadian serupa terulang.

Kebiasaan baru pun terbentuk setelah insiden tersebut. Cadangan OPML kini dibuat secara rutin setiap kali ada penambahan atau penghapusan sumber berita, kira-kira setiap dua minggu.

Pelajaran dari satu perintah yang keliru

Kasus ini menunjukkan bahwa eksperimen di lingkungan hobi tetap menyimpan risiko besar jika perintah dijalankan tanpa pemahaman yang cukup. Kehilangan feed pribadi memang bukan bencana besar, tetapi efeknya tetap bisa menghapus layanan yang dianggap penting.

Pengalaman ini juga menjadi pengingat bahwa pembersihan storage tidak boleh dilakukan dengan menebak fungsi perintah Docker. Dengan cadangan yang tepat, layanan seperti FreshRSS masih bisa dibangun ulang, sementara kesalahan sebelumnya berubah menjadi pelajaran teknis yang mahal.

Berita Terkait