Hosting aplikasi Node.js di cPanel mungkin terdengar menakutkan bagi pemula. Tapi tenang, dengan panduan step-by-step ini, kamu bakal bisa deploy aplikasi Node.js dengan mudah di cPanel hosting kamu!
Persyaratan Dasar
- Hosting cPanel dengan akses SSH
- Node.js app yang sudah siap di-deploy
- Domain atau subdomain yang aktif
- Basic knowledge tentang command line
Metode 1: Setup Node.js via cPanel Application Manager
-
Login ke cPanel
Buka dashboard cPanel kamu dan login dengan kredensial yang valid.
-
Cari Setup Node.js App
Di bagian 'Software', cari dan klik 'Setup Node.js App' atau 'Application Manager'.
-
Create Application
Klik tombol 'Create Application' dan isi detail berikut:
- Node.js version (pilih versi yang sesuai)
- Application mode (Production/Development)
- Application root (direktori aplikasi)
- Application URL (domain/subdomain)
- Application startup file (biasanya app.js atau index.js)
Metode 2: Manual Setup via SSH
# Login via SSH
ssh [email protected]
# Install NVM (Node Version Manager)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
# Reload shell configuration
source ~/.bashrc
# Install Node.js
nvm install node # Latest version
# atau
nvm install 16 # Specific version
Upload dan Setup Aplikasi
1. Upload File Aplikasi
Ada beberapa cara upload aplikasi ke server:
- Git clone (jika repo private)
- File Manager cPanel
- FTP/SFTP client
# Masuk ke direktori aplikasi
cd ~/nodeapp
# Install dependencies
npm install --production
# Test aplikasi
node app.js
Konfigurasi Process Manager
Untuk menjaga aplikasi tetap running, kita perlu process manager. PM2 adalah pilihan populer:
# Install PM2
npm install -g pm2
# Start aplikasi
pm2 start app.js --name "myapp"
# Auto-start setelah server reboot
pm2 startup
pm2 save
Setup Reverse Proxy
Buat file .htaccess di public_html atau subdomain folder:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ http://127.0.0.1:3000/$1 [P,L]
Penting!
Ganti port 3000 dengan port yang digunakan aplikasi kamu. Pastikan juga mod_proxy dan mod_rewrite sudah aktif di server.
Environment Variables
Ada beberapa cara setting environment variables:
1. File .env
PORT=3000
NODE_ENV=production
DB_URL=mongodb://...
2. PM2 Ecosystem
module.exports = {
apps: [{
name: "myapp",
env: {
PORT: 3000
}
}]
}
Monitoring dan Maintenance
PM2 Monitor
pm2 monit
View Logs
pm2 logs
Restart App
pm2 restart myapp
Troubleshooting
Error: Port already in use
Cek dan kill process yang menggunakan port tersebut:
lsof -i :3000
kill -9 [PID]
502 Bad Gateway
- Cek apakah aplikasi running (pm2 list)
- Verifikasi konfigurasi proxy
- Periksa error logs
Tips Deployment
Best Practices
- Selalu backup sebelum update
- Gunakan process manager (PM2)
- Monitor memory usage
- Setup error logging
- Implement security best practices
Script Deployment
#!/bin/bash
# deploy.sh
# Pull latest changes
git pull origin main
# Install dependencies
npm install --production
# Build if needed
npm run build
# Restart app
pm2 restart myapp
# Save PM2 config
pm2 save
Kesimpulan
Hosting Node.js di cPanel mungkin butuh setup yang lebih kompleks dibanding shared hosting biasa, tapi dengan mengikuti panduan di atas, kamu bisa deploy aplikasi Node.js dengan aman dan reliable.
Next Steps
- Setup monitoring tools
- Implement CI/CD pipeline
- Configure automatic backups
- Setup error notification system