🍭 NodeJS #23: Mendeploy Aplikasi ke Internet (Hosting Gratis)
Halo, calon full-stack developer! 👋
Selamat! Kamu sudah berhasil membuat aplikasi web dengan Express.js. Sekarang saatnya menunjukkan karyamu ke seluruh dunia dengan mendeploy (mengunggah) aplikasi ke internet. Di tutorial ini, kita akan belajar cara mendeploy aplikasi Node.js ke platform hosting gratis seperti Render, Cyclic, dan Azure. Pilih salah satu yang paling kamu suka! 🚀
🧐 Apa Itu Deployment?
Deployment adalah proses mengunggah aplikasi kita ke server online sehingga bisa diakses oleh siapa pun melalui internet. Selama ini aplikasi kita hanya berjalan di komputer sendiri (localhost). Dengan deployment, aplikasi kita akan memiliki URL publik seperti https://namamu.cyclic.app atau https://namamu.onrender.com.
Bayangkan deployment seperti memindahkan mainan dari rumah ke taman bermain umum agar semua teman bisa ikut bermain. Seru, kan? 😊
📋 Persiapan Sebelum Deployment
Ada beberapa hal yang harus disiapkan agar aplikasi siap dideploy:
1. Pastikan Aplikasi Menggunakan PORT dari Environment
Di komputer lokal kita pakai port 3000. Di server, port akan ditentukan oleh platform hosting. Kita harus menggunakan process.env.PORT.
// Di app.js atau index.js
const port = process.env.PORT || 3000;
app.listen(port, () => {
console.log(`Server berjalan di port ${port}`);
});
2. Buat File .gitignore
File ini memberitahu Git untuk tidak mengunggah folder yang tidak perlu seperti node_modules. Buat file .gitignore di root proyek:
node_modules/
.env
.DS_Store
*.log
3. Periksa package.json
Pastikan ada script start di bagian scripts:
"scripts": {
"start": "node app.js"
}
Jika kamu menggunakan file utama dengan nama lain, sesuaikan (misal node server.js).
4. Buat Akun GitHub
Semua platform hosting akan mengambil kode dari GitHub. Buat akun di github.com jika belum punya. Lalu buat repository baru dan upload kode kamu [citation:2].
Perintah Git dasar:
git init
git add .
git commit -m "first commit"
git branch -M main
git remote add origin https://github.com/username/nama-repo.git
git push -u origin main
☁️ Opsi 1: Deploy ke Render (Paling Mudah)
Render adalah platform PaaS (Platform as a Service) yang populer. Mereka menyediakan free tier dengan 750 jam/bulan, cukup untuk menjalankan satu aplikasi 24/7 selama sebulan penuh! [citation:3]
Langkah 1: Buat Akun Render
- Buka render.com dan daftar dengan akun GitHub.
- Klik "New +" lalu pilih "Web Service".
Langkah 2: Hubungkan ke GitHub
Render akan meminta izin mengakses repository GitHub kamu. Pilih repository yang berisi aplikasi Node.js-mu.
Langkah 3: Konfigurasi Web Service
Isi formulir dengan informasi berikut [citation:6]:
- Name: Nama aplikasi (akan jadi subdomain, misal
nama-app.onrender.com) - Region: Pilih yang terdekat (misal Singapore)
- Branch: main
- Build Command:
npm install - Start Command:
npm start - Plan: Pilih Free
Klik "Create Web Service". Render akan mulai membangun dan menjalankan aplikasimu.
Langkah 4: Tunggu dan Buka Aplikasi
Proses build butuh beberapa menit. Setelah selesai, kamu akan melihat URL seperti https://namamu.onrender.com. Klik untuk membuka aplikasimu yang sudah online! 🎉
⚡ Opsi 2: Deploy ke Cyclic.sh (Serverless)
Cyclic.sh adalah platform serverless yang sangat cocok untuk Node.js. Mereka menawarkan free tier dengan batasan pemakaian dan tidak perlu khawatir server tidur [citation:5].
Langkah 1: Buat Akun Cyclic
- Buka cyclic.sh dan login dengan akun GitHub.
Langkah 2: Deploy dari GitHub
- Klik "Deploy" dan pilih repository aplikasi Node.js-mu.
- Cyclic akan otomatis mendeteksi proyek Node.js dan melakukan deploy.
Langkah 3: Konfigurasi Environment Variables
Jika aplikasi menggunakan variabel lingkungan (seperti API key), kamu bisa menambahkannya di dashboard Cyclic pada tab "Variables" [citation:5].
Langkah 4: Buka Aplikasi
Setelah deploy selesai, Cyclic akan memberikan URL seperti https://namamu.cyclic.app. Aplikasi siap diakses!
package.json ada script start dan main yang benar. Cyclic juga membutuhkan file ecosystem.config.cjs atau konfigurasi khusus jika menggunakan TypeScript [citation:9].
🌐 Opsi 3: Deploy ke Azure (Free Tier)
Microsoft Azure menyediakan free tier App Service untuk menjalankan aplikasi web. Ini adalah opsi dari perusahaan besar dengan infrastruktur handal [citation:4].
Langkah 1: Buat Akun Azure
- Buka portal.azure.com dan daftar akun gratis. Kamu akan mendapat kredit $200 untuk 30 hari pertama, tapi kita akan pakai yang gratis.
Langkah 2: Buka Cloud Shell atau Instal Azure CLI
Kita bisa deploy langsung dari terminal. Cara termudah: gunakan Azure Cloud Shell (bash) di portal.
Langkah 3: Jalankan Perintah Deployment
Di direktori proyek, jalankan perintah berikut (ganti <app-name> dengan nama unik) [citation:4]:
az webapp up --sku F1 --name <app-name>
--sku F1 adalah tier gratis. Perintah ini akan membuat resource group, App Service plan, dan mendeploy aplikasi.
Langkah 4: Buka Aplikasi
Setelah selesai, Azure akan menampilkan URL aplikasi, biasanya https://<app-name>.azurewebsites.net. Buka di browser!
Jika lebih suka dengan Visual Studio Code, kamu bisa install ekstensi Azure App Service dan deploy dengan klik kanan [citation:8].
🔧 Troubleshooting Umum
| Masalah | Penyebab dan Solusi |
|---|---|
| Error: Cannot find module 'express' | Lupa menjalankan npm install atau node_modules tidak terupload. Pastikan build command di platform adalah npm install. |
| Port already in use | Pastikan sudah menggunakan process.env.PORT. Jangan hardcode port 3000. |
| Application error / 503 | Cek log di dashboard platform. Biasanya karena error di kode atau dependency tidak terinstall. |
| MongoDB connection error | Pastikan connection string sudah disimpan di environment variables, bukan hardcode di kode. |
📝 Checklist Sebelum Deploy
- ✅ Gunakan
process.env.PORT - ✅ Tambahkan script
"start"di package.json - ✅ Buat file
.gitignore(masukkan node_modules, .env) - ✅ Push kode ke GitHub
- ✅ Siapkan environment variables di dashboard platform
- ✅ Uji coba lokal dengan
npm start
🧪 Latihan Mandiri
- Buat aplikasi Express sederhana (misal API buah seperti tutorial sebelumnya).
- Deploy ke Render atau Cyclic.
- Tambahkan environment variable
NAMA_AUTHORdan tampilkan di response. - Bagikan URL aplikasi ke teman-temanmu!
📚 Rangkuman Platform
| Platform | Kelebihan | Kekurangan | URL Contoh |
|---|---|---|---|
| Render | Mudah, free 750 jam/bulan | Aplikasi tidur setelah 15 menit idle | .onrender.com |
| Cyclic | Serverless, cepat, tidak tidur | Ada batasan pemakaian | .cyclic.app |
| Azure | Infrastruktur Microsoft, handal | Konfigurasi sedikit lebih rumit | .azurewebsites.net |
🏁 Penutup
Selamat! Kini aplikasi Node.js buatanmu sudah bisa diakses oleh siapa pun di internet. Ini adalah pencapaian besar. Kamu bisa membagikan URL aplikasi ke teman, guru, atau bahkan calon klien sebagai portofolio.
Di tutorial selanjutnya (NodeJS #24) kita akan membuat proyek mini – aplikasi catatan sederhana yang menggabungkan semua materi: form, API, file JSON, dan deployment. Sampai jumpa!
Jangan lupa untuk mencoba latihan dan bereksperimen sendiri. Kalau ada pertanyaan, tulis di komentar. Selamat coding! 💻😊
Ditulis dengan ❤️ untuk para pemula yang ingin menjadi programmer handal.