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 dari mock-aws-s3, aws-sdk, dan nock. 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.

Connect with me:

Comments

Spammy comment will be deleted. Markdown syntax is supported.