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:

  1. 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.
  2. 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.
  3. 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.

  1. Login cPanel → cari “Setup Node.js App” / “Application Manager”.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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)

  1. Buat repo Git lokal → push ke remote (GitHub/GitLab).
  2. Di server: git clone atau gunakan fitur Git Version Control di cPanel (beberapa cPanel memiliki menu Git).
  3. cd folder && npm install (atau klik Install deps di panel).
  4. 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.

Related Articles

Leave a Reply

Your email address will not be published. Required fields are marked *