Deploy Aplikasi JavaScript di VPS
Saat ini banyak layanan yang menyediakan tempat untuk deploy aplikasi JavaScript, contohnya: Vercel dan Netlify. Keuntungan menggunakan layanan-layanan ini, kalian tidak perlu melakukan pengaturan yang rumit. Layanan-layanan tersebut sudah menyediakan fitur yang hampir semua dilakukan secara otomatis.
Jadi ceritanya, aku ingin mencoba deploy aplikasi website yang kubuat dengan menggunakan SvelteKit ke sebuah Virtual Private Server. Aku ingin website ini berjalan tanpa menggunakan docker
.
Mengganti Adapter
SvelteKit menggunakan @sveltejs/adapter-auto
untuk aplikasi secara generic. Jika kalian ingin menggunakan Vercel sebagai tempat hosting, ada @sveltejs/adapter-vercel
untuk lebih spesifik. Sedangkan @sveltejs/adapter-node
jika kalian ingin memasang di server kalian sendiri.
Menjalan Daemon
Tentu saja untuk menjalankan sebuah server, kalian perlu perintah yang membuat aplikasi tetap online. Pilihan yang mungkin menjadi favorit di kalangan komunitas JavaScript jatuh ke pm2
. Dengan pm2
, aplikasi kalian bisa dimulai jika suatu saat server kalian butuh restart.
Masalah
Bisa dibilang, JavaScript dibuat untuk menambah masalah hidup kalian sebagai programmer. Aku menemukan beberapa kebuntuan yang membuatku harus mengganti beberapa kode yang tidak kutemukan saat mode development.
- bcrypt.
bcrypt
ini kugunakan untuk proses otentikasi masuk ke website. Saat dijalankan dalam mode production,bcrypt
ternyata membutuhkan dependency darimock-aws-s3
,aws-sdk
, dannock
. Karena tidak menemukan solusi yang elegan untuk mengatasi masalah ini, aku akhirnya mengganti dengan pustaka yang berbeda. - Gambar. Untuk mengunggah gambar tidak semudah yang kubayangkan. Gambar atau file bisa diunggah tanpa masalah tetapi tidak bisa diakses dari luar. Untuk masalah yang satu ini, aku masih harus perlu riset yang mendalam.
- googleapis. Google menyediakan banyak API yang gratis untuk dicoba. Salah satunya Google Profile API, yang tadinya mau kugunakan untuk mendapatkan
email
saat proses otentikasi. Tetapi pada saat melakukan proses build di server, butuh waktu yang sangat lama sehingga membuat server tidak responsif.
Mungkin memang docker
adalah pilihan yang terbaik untuk mengurangi keribetan ini.