Cara Menjalankan Aplikasi Node.js di Hosting cPanel
Aplikasi Node.js bisa jalan di hosting cPanel lewat Setup Node.js App atau Application Manager. Ini langkah, syarat, dan batasan yang perlu kamu tahu.
Jawaban singkat
Di hosting cPanel, aplikasi Node.js dijalankan lewat Setup Node.js App (CloudLinux) atau Application Manager (cPanel), keduanya memakai Phusion Passenger. Unggah kode, daftarkan aplikasi dengan domain, folder, dan berkas awal, pasang dependensi, lalu jalankan ulang.
Daftar isi
Aplikasi Node.js bisa dijalankan di hosting cPanel tanpa VPS, asalkan penyedia hostingmu mengaktifkan salah satu dari dua fitur: Setup Node.js App dari CloudLinux atau Application Manager bawaan cPanel.
Ini penting karena banyak orang mengira Node.js wajib di VPS. Untuk aplikasi kecil seperti API sederhana, bot notifikasi, atau situs Express dengan lalu lintas wajar, hosting cPanel sering sudah cukup. Kamu tidak perlu mengurus sistem operasi, firewall, atau sertifikat SSL sendiri. Namun, ada batasan yang perlu dipahami sejak awal supaya tidak kaget di tengah jalan.
Bagaimana Node.js berjalan di hosting cPanel?
Kedua fitur tadi memakai Phusion Passenger, yaitu server aplikasi yang bertugas menyalakan proses Node.js, menerima permintaan dari domainmu, lalu meneruskannya ke aplikasi. Dokumentasi cPanel menyebut Passenger sebagai pengelola proses sekaligus reverse proxy.
Artinya, kamu tidak membuka port sendiri ke internet seperti di VPS. Pengunjung membuka domain atau subdomain biasa, dan Passenger yang mengurus sisanya. Passenger juga bisa mematikan aplikasi yang lama tidak diakses dan menyalakannya lagi saat ada permintaan berikutnya, sehingga akses pertama setelah sepi kadang terasa lebih lambat.
Mana yang tersedia di hostingmu?
Masuk ke cPanel dan lihat bagian Software.
| Setup Node.js App | Application Manager | |
|---|---|---|
| Pembuat | CloudLinux | cPanel |
| Letak menu | Bagian Software di cPanel | Bagian Software di cPanel |
| Pilihan versi Node.js | Bisa dipilih per aplikasi, sesuai versi yang dipasang penyedia | Mengikuti paket ea-nodejs yang dipasang di server |
| Mode | Production atau Development | Production atau Development |
| Pasang dependensi | Tombol Run NPM Install | Tindakan Enable Dependencies |
| Jenis aplikasi lain | Python dan Ruby lewat selector masing-masing | Python dan Ruby |
Hosting yang memakai CloudLinux biasanya menampilkan Setup Node.js App. Kalau keduanya tidak ada, fitur itu belum diaktifkan oleh penyedia hostingmu.
Langkah menjalankan aplikasi
- Siapkan kode. Pastikan ada
package.jsonberisi daftar dependensi dan satu berkas awal, misalnyaapp.js. Jangan ikut mengunggah foldernode_modulesdari laptop. - Unggah ke folder di luar
public_html. Misalnya/home/namapengguna/aplikasiku. Kamu bisa memakai File Manager, FTP, atau deploy dari repositori Git langsung di cPanel. - Daftarkan aplikasi. Di Setup Node.js App, klik tombol untuk membuat aplikasi baru, pilih versi Node.js, mode, folder aplikasi (application root), alamat URL, dan berkas awal. Di Application Manager, isi Application Name, Deployment Domain, Base Application URL, Application Path, dan Deployment Environment.
- Isi variabel lingkungan. Simpan kunci API, password database, dan pengaturan lain sebagai environment variable, bukan di dalam kode.
- Pasang dependensi. Klik Run NPM Install atau Enable Dependencies. Proses ini membaca
package.jsondan memasang paketnya di server. - Jalankan dan uji. Simpan atau klik Deploy, lalu buka alamat aplikasimu. Setiap kali kode atau berkas awal diubah, jalankan ulang aplikasi dari panel.
Kalau aplikasi tidak mau jalan, cek log. Menurut dokumentasi cPanel, aplikasi Node.js di Application Manager menulis log ke folder logs/ di dalam folder aplikasinya. Di Setup Node.js App, tanyakan ke penyedia hosting di mana log aplikasi disimpan. Penyebab yang paling sering adalah nama berkas awal salah, dependensi belum terpasang, atau versi Node.js terlalu lama untuk paket yang dipakai.
Apa yang tidak cocok dijalankan di hosting cPanel?
Hosting bersama punya batas sumber daya per akun, seperti CPU, memori, dan jumlah proses. Beberapa jenis aplikasi akan terus berbenturan dengan batas itu:
- Aplikasi yang harus selalu menyala, misalnya bot yang mendengarkan pesan terus-menerus atau pekerja antrean. Passenger dirancang untuk aplikasi web yang merespons permintaan, bukan proses latar belakang tanpa henti.
- Aplikasi berat yang butuh build besar, banyak memori, atau pemrosesan gambar dan video.
- Aplikasi yang butuh port khusus, akses root, atau perangkat lunak sistem tambahan.
- WebSocket dengan banyak koneksi bersamaan. Dukungannya bergantung pada konfigurasi server, jadi tanyakan dulu ke penyedia hosting.
Untuk kebutuhan seperti itu, VPS lebih masuk akal. Panduan menjalankan aplikasi Node.js di VPS dengan PM2 membahas cara menjaga aplikasi tetap menyala di server sendiri.
Contoh berkas awal untuk uji coba
Sebelum mengunggah aplikasi sungguhan, ada baiknya menguji dengan berkas paling sederhana. Kalau berkas ini berjalan, berarti pengaturan di panel sudah benar dan masalah (bila ada) ada di kode aplikasimu. Simpan sebagai app.js tanpa dependensi tambahan:
const http = require('http');
const server = http.createServer((req, res) => {
res.writeHead(200, { 'Content-Type': 'text/plain; charset=utf-8' });
res.end('Aplikasi Node.js berjalan. Versi: ' + process.version);
});
server.listen(process.env.PORT || 3000);
Buka alamat aplikasimu. Kalau muncul teks beserta nomor versi Node.js, lingkungan sudah siap dan kamu bisa mengganti berkas ini dengan aplikasi sebenarnya.
Tips supaya aplikasi stabil
Simpan aplikasi di folder terpisah dari situs utama, jangan di dalam public_html, supaya berkas seperti .env dan kode sumber tidak bisa diunduh orang. Pakai subdomain khusus, misalnya api.domainmu.com, agar aplikasi Node.js tidak bentrok dengan situs WordPress atau PHP di domain utama.
Pastikan juga aplikasimu tidak menulis berkas sementara tanpa henti. Hosting cPanel punya batas inode (jumlah berkas), dan log atau cache yang terus bertambah bisa menghabiskannya.
Terakhir, catat langkah deploy di satu dokumen: versi Node.js, variabel lingkungan yang diperlukan, dan perintah yang dijalankan. Catatan ini menghemat banyak waktu saat kamu pindah hosting atau menyerahkan aplikasi ke orang lain.
Pertanyaan yang sering diajukan
Apakah aplikasi Next.js bisa jalan di hosting cPanel?
Bisa untuk sebagian kasus, terutama bila hasil build sudah disiapkan di komputermu dan aplikasinya ringan. Proses build Next.js biasanya butuh memori besar, sehingga sering gagal bila dijalankan langsung di hosting bersama.
Kenapa aplikasi lambat saat dibuka pertama kali?
Passenger bisa mematikan aplikasi yang lama tidak diakses untuk menghemat sumber daya. Permintaan pertama setelah itu harus menunggu aplikasi menyala kembali.
Apakah perlu menulis port seperti 3000 di kode?
Saat berjalan di bawah Passenger, permintaan dari domain diteruskan otomatis ke aplikasimu. Kode dengan app.listen biasa umumnya tetap bisa dipakai, tetapi ikuti petunjuk penyedia hosting bila mereka punya ketentuan khusus.


