Cara Install Node JS pada Share Hosting

Apa itu Node.js?
- Node.js adalah runtime JavaScript di sisi server yang dibangun di atas mesin V8 (Chrome).
- Fitur utama: event-driven, non-blocking I/O → sangat cocok untuk aplikasi I/O-heavy (API, realtime, streaming).
- Node.js menjalankan satu thread utama (event loop) dan menangani banyak koneksi secara asinkron tanpa membuat thread baru per koneksi.
- Package manager: npm (Node Package Manager) atau yarn. Ekosistemnya besar — ribuan modul siap pakai (Express, Socket.io, Mongoose, dsb.).
- Di hosting shared tradisional, Node.js tidak seterang biasa dipakai karena biasanya web server shared disetting untuk PHP. cPanel modern (dengan CloudLinux / Application Manager / Phusion Passenger) mendukung Node.js lewat fitur “Setup Node.js App”.
Persiapan & Prasyarat
Sebelum memulai:
- Cek apakah hosting mendukung Node.js
- Login ke cPanel → cari menu “Setup Node.js App”, “Application Manager”, atau “Node.js Selector”. Jika tersedia, hosting mendukung Node.js pada accountmu.
- Jika tidak ada, tanyakan ke provider/upgrade ke paket yang mendukung Node.js, atau gunakan VPS/VPS-managed.
- Akses
- Ideal: akses cPanel + SSH. Banyak proses (npm install, git pull) lebih mudah via SSH. Jika hanya cPanel GUI: masih bisa deploy via File Manager & Setup Node.js App.
- Ketentuan port
- Pada shared hosting: jangan mengikat port secara manual (mis. app.listen(3000)), karena Passenger/Node selector akan meneruskan trafik ke app. Gunakan startup script standar (npm start) dan biarkan cPanel mengatur binding lewat environment variable PORT atau Passenger.
Cara 1: Install & Jalankan Node.js lewat cPanel GUI (Application Manager / Setup Node.js App)
Cara ini paling umum di shared hosting yang menyediakan fitur Node.js.
- Login cPanel → cari “Setup Node.js App” / “Application Manager”.

- Klik Create Application (atau Setup New Application).

Isi form:- Node.js version: pilih versi yang disediakan (mis. 14.x, 16.x, dst.).
- Application mode: production atau development.
- Application root: folder relatif di home (mis. myapp atau nodeapp), ini tempat package.json dan file app berada.
- Application URL: pilih domain/subdomain yang dipakai (mis. node.example.com atau example.com/nodeapp).
- Application startup file: nama file entry, mis. app.js atau server.js. Biasanya akan menjalankan npm start atau langsung file.

- Buat/Upload kode
- Gunakan File Manager atau Git Version Control (jika tersedia) untuk upload project ke folder Application root yang tadi.
- Project minimal: package.json + app.js. Contoh di bawah.
- Install dependencies
- Di panel Setup Node.js App biasanya ada tombol Run NPM Install atau Install Dependencies. Klik agar node_modules terinstal.
- Jika tidak ada, pakai SSH: cd ~/myapp && npm install.
- Start / Restart App
- Di panel app klik Start App / Restart. cPanel akan menjalankan app via Passenger atau Node selector.
- Setelah start sukses, kunjungi Application URL.
- Log & Debug
- cPanel biasanya menyediakan log (Application Logs) untuk melihat output/err. Periksa bila app tidak muncul.
Cara 2: Deploy via SSH (jika hosting izinkan SSH)
Jika hosting memberi akses SSH, ini langkah manual (lebih fleksibel).
- SSH ke server
ssh username@yourdomain.comcd ~/ # home
- Buat folder aplikasi & pindah
mkdir nodeappcd nodeapp
- Contoh sederhana aplikasi — buat app.js:
// app.js
const express = require('express');
const app = express();
const port = process.env.PORT || 3000; // di hosting biasanya PORT diset oleh handler
app.get('/', (req, res) => res.send('Hello from Node.js on cPanel!'));
app.listen(port, () => console.log(`Server listening on port ${port}`));
- Buat package.json (atau npm init -y):
{
"name": "node-cpanel-sample",
"version": "1.0.0",
"main": "app.js",
"scripts": {
"start": "node app.js"
},
"dependencies": {
"express": "^4.18.2"
}
}
- Install dependencies:
npm install
- Jika cPanel Application Manager tersedia: buat app di GUI dan set Application root ke folder ini, startup file = app.js. Lalu klik Install dependencies dan Start.
- Jika tidak ada Application Manager: beberapa shared host tidak mengizinkan long-running node process; alternatif:
- Gunakan Passenger bila tersedia: cPanel biasanya menghandle Passenger otomatis ketika app terdeteksi.
- Jika VPS, jalankan via pm2 (lebih lanjut di bagian VPS).
Contoh package.json + app.js (lengkap)
package.json
{
"name": "node-cpanel-sample",
"version": "1.0.0",
"main": "app.js",
"scripts": {
"start": "node app.js"
},
"dependencies": {
"express": "^4.18.2"
}
}
app.js
const express = require('express');
const app = express();
const port = process.env.PORT || 3000;
app.get('/', (req, res) => {
res.send('Hello Node.js on cPanel!');
});
app.listen(port, () => {
console.log(`App started on port ${port}`);
});
Jika Kamu Punya VPS (opsional): Install Node.js via nvm / apt / yum
Di VPS kamu berhak install sendiri Node.js. Rekomendasi nvm karena fleksibel:
# Install nvm curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.4/install.sh | bash # restart shell or source .bashrc nvm install 18 nvm use 18 node -v npm -v
Setelah itu bisa gunakan pm2 untuk process manager:
npm install -g pm2 pm2 start app.js --name my-node-app pm2 save pm2 startup # generate startup script
Tapi ingat: pada cPanel shared biasanya pm2/tmux tidak diizinkan — gunakan Application Manager.
Mengatur Domain & SSL
- Subdomain/Domain mapping: Pada Setup Node.js App di cPanel pilih domain/subdomain yang diarahkan ke app.
- HTTPS/SSL: cPanel mengelola SSL (Let’s Encrypt atau certificate) di SSL/TLS. Pastikan domain/subdomain punya certificate, lalu app akan tersedia via https.
- Jika cPanel menggunakan reverse proxy (Passenger), HTTPS diterminate di server dan diteruskan ke app; app tetap menerima trafik.
Deployment Workflow (praktis)
- Buat repo Git lokal → push ke remote (GitHub/GitLab).
- Di server: git clone atau gunakan fitur Git Version Control di cPanel (beberapa cPanel memiliki menu Git).
- cd folder && npm install (atau klik Install deps di panel).
- Restart app via cPanel UI.
Troubleshooting Umum
- App tidak muncul / 502:
- Cek Application Logs di cPanel.
- Pastikan startup file sesuai dan package.json punya start script.
- Pastikan dependencies terinstall (node_modules ada).
- Port binding error:
- Jangan bind port arbitrary pada shared host. Gunakan process.env.PORT atau biarkan Passenger mengatur.
- Permission denied saat npm install:
- Hindari sudo. Pastikan berada di direktori home. Jika masih error, hubungi support hosting.
- Module native build error:
- Beberapa paket memerlukan build-tools (gcc, make). Shared hosting tidak selalu support. Gunakan alternatif paket pure JS atau lakukan build di local lalu upload node_modules (tidak ideal).
- Crash berulang:
- Periksa logs, perbaiki error, restart. Pada VPS gunakan pm2 agar auto-restart.
Keamanan & Best Practices
- Simpan kunci & password di environment variables, bukan di file sumber (Gunakan cPanel Environment Variables jika tersedia).
- Update dependencies secara berkala (npm audit fix), tapi di environment terkontrol.
- Gunakan HTTPS untuk semua trafik publik.
- Batasi akses SSH (kunci publik, non-password).
- Jangan jalankan aplikasi dengan hak root.
Tips Tambahan & Rangkuman
- Shared hosting: gunakan fitur Setup Node.js App di cPanel (jika ada). Jangan coba menjalankan server binding port sendiri.
- VPS/Cloud: lebih fleksibel — gunakan nvm + pm2 atau systemd untuk production.
- Gunakan package.json start script agar cPanel/Passenger tahu cara menjalankan aplikasi.
- Gunakan Docker jika hosting mendukung (VPS) untuk isolasi lingkungan.








