VPS ke STB Bekas: Aplikasi Usaha di RAM 1,7 GB, Mati 6 Menit

Utas dari @firhxxxxx menceritakan pemindahan aplikasi operasional usahanya dari VPS ke STB bekas di rumah. Android TV box biasa, RAM 1,7 GB, tanpa SSD.

Layanan mati 6 menit. Setelah itu aplikasinya jalan seperti biasa.

Beban sebenarnya jauh lebih kecil dari dugaannya

Setelah pindah, aplikasi Go-nya memakan 7 MB RAM. PostgreSQL 40 MB.

Menurutnya, beban sebenarnya jauh lebih kecil dari yang dia bayangkan saat dulu memilih spesifikasi VPS.

VPS ke STB Bekas: Aplikasi Usaha di RAM 1,7 GB, Mati 6 Menit

Angka lengkapnya: seluruh aplikasi muat di 65 MB, atau 3,6 persen dari 1.787 MB RAM yang tersedia di kotak itu.

Rinciannya aplikasi Go dan React 7 MB, PostgreSQL 16 40 MB, dan Cloudflare Tunnel 18 MB. Sisanya, sekitar 1.722 MB, jadi page cache dan ruang gerak kernel.

Dia juga mencatat satu hal yang sering disalahpahami: batas container yang disetel longgar bukan berarti RAM-nya dipesan. Batas 320 MB untuk aplikasi tidak berarti aplikasi memakai 320 MB.

Pelajaran paling mahal: backup yang belum pernah dipulihkan

Bagian ini yang menurutnya paling mahal hari itu.

Backup hariannya sudah berjalan berminggu-minggu. Tapi belum pernah sekali pun dicoba dipulihkan di mesin lain.

Waktu akhirnya dicoba, ketahuan backup-nya kehilangan satu tabel penting, dan aplikasinya menolak start.

Untung ketahuannya saat latihan, bukan saat benar-benar butuh.

Ini pengingat yang jarang ditulis di panduan: backup yang tidak pernah diuji pulih bukan bukti apa-apa. Yang membuktikan cuma satu, yaitu memulihkannya di mesin lain sampai aplikasinya benar-benar jalan.

“Berhenti dipakai” bukan berarti “berhenti menulis”

Kejadian kedua lebih halus, dan menurut saya lebih menarik.

Waktu pindah server, dia mengambil backup terakhir. Tapi aplikasi lamanya masih menyala, dan beberapa menit kemudian diam-diam memperbarui token Shopee.

Baca juga  Binance Kehilangan $6,3 Miliar dalam Satu Malam, Ini Rantai Serangannya

Token itu sekali pakai. Yang lama langsung mati.

Hasilnya, backup-nya membawa token yang sudah tidak berlaku. Untung prosesnya dimatikan dulu sebelum pengambilan backup.

Kalau tidak, migrasinya bisa terlihat mulus di atas kertas tapi gagal di runtime.

Ruang disk: 7,3 GB dibagi dua

Armbian dipasang di eMMC internal, bukan di kartu SD. Dari 7,3 GB, 511 MB untuk /boot dan 6,1 GB untuk root.

Sekarang terpakai 3,5 GB, sisa 2,5 GB. Itu sudah termasuk PostgreSQL, aplikasi Go, dan Cloudflare Tunnel yang jalan semua.

Kuncinya: jangan build di STB

Kalau ada satu trik yang membuat ini masuk akal, ini dia: dia tidak melakukan build di STB-nya.

Image Docker dibangun di GitHub Actions, dan STB hanya menarik hasil jadinya, sebesar 680 MB.

Yang menghabiskan disk bukan sistem operasinya, tapi toolchain Node dan Go plus cache build-nya.

Hasil akhirnya

Dia membandingkan jumlah baris delapan tabel sebelum dan sesudah pindah. Semuanya sama: 1.713 baris, tanpa satu baris pun hilang.

Tabel terbesarnya transaksi kas 551 baris, pesanan 316, pesanan item 339, customer 283, shopee order 159, produk 49, testimoni 8, dan pembayaran gaji 8.

VPS ke STB Bekas: Aplikasi Usaha di RAM 1,7 GB, Mati 6 Menit

Angka itu hasil hitung jumlah baris, bukan pemeriksaan isi tiap kolom. Untuk migrasi seperti ini, hitungan baris sudah jadi pemeriksaan pertama yang masuk akal.

Tanggapan pembaca

@_notxxxxx menanyakan apakah pakai Armbian, dan jawabannya betul.

@dennypradxxxxx menyarankan kartu SD high endurance kalau nanti butuh ruang lebih besar, karena perilaku PostgreSQL yang rajin menulis. Penulisnya setuju.

@diazherxxxxx menanyakan kenapa tidak pakai mini PC, karena eMMC dan SD cepat mati. Jawaban penulisnya sederhana: dia mencari yang termurah.

Baca juga  Node.js Rilis Security Patch 21 Oktober 2026, Ini Versi Fix-nya

@lekxxxxx menambahkan bahwa STB cukup stabil kalau bebannya tidak berat, dan sampai saat itu masih aman.

Ringkasan

Kisah ini bukan soal membeli perangkat baru, tapi soal mengukur ulang kebutuhan. Aplikasi yang dulu dianggap butuh VPS ternyata muat di 65 MB RAM. Yang benar-benar berharga justru dua pelajarannya: backup harus pernah dipulihkan, dan proses yang “sudah tidak dipakai” harus benar-benar dimatikan sebelum dianggap selesai.

Sumber utas