Saya menyewa satu VPS Ubuntu untuk menampung beberapa aplikasi kecil sekaligus. Awalnya cara deploy-nya sederhana: masuk lewat SSH, tarik kode terbaru, jalankan migrasi, restart layanan. Untuk satu aplikasi itu cukup. Untuk aplikasi kedua, saya mulai lupa mana yang sudah dijalankan dan mana yang belum.
Masalah yang sebenarnya bukan jumlah perintahnya, melainkan tidak adanya catatan. Tidak ada satu tempat pun yang bisa saya buka untuk tahu versi mana yang sedang jalan.
Setiap aplikasi saya bungkus sebagai container, lalu Coolify yang menjalankannya. Perubahan yang paling terasa bukan soal performa, melainkan soal batas:
Bagian yang membuat saya paling tenang justru domain. Tiap layanan punya subdomainnya sendiri, sertifikatnya diurus otomatis, dan saya tidak perlu menyunting konfigurasi nginx tiap ada aplikasi baru.
Dua hal, dan keduanya bukan soal Docker.
Pertama, penyimpanan. Gambar yang diunggah pengguna hilang setelah deploy pertama, karena tersimpan di dalam container. Sejak itu, folder unggahan selalu saya pasangkan ke volume, dan pemasangan volume itu saya tulis di panduan deploy supaya tidak pernah terlewat lagi.
Kedua, pekerjaan latar. Container yang hanya menjalankan web server tidak menjalankan queue worker. Email yang saya kirim lewat antrean menumpuk diam-diam di tabel jobs tanpa pesan kesalahan sama sekali. Sejak itu saya selalu memastikan worker ikut berjalan, atau pengiriman dilakukan setelah respons sampai ke peramban.
Deploy yang baik bukan yang tercepat, tapi yang paling sedikit menuntut ingatan. Kalau saya harus mengingat urutan langkah, cepat atau lambat ada langkah yang terlewat, biasanya di malam hari saat sedang buru-buru.