Node.js adalah framework open-source yang dirancang untuk menjalankan skrip JavaScript di sisi server. Node.js memungkinkan developer untuk mengeksekusi JavaScript di server, yang sebelumnya peran ini dilakukan oleh browser. Dalam artikel ini, kami akan membahas bagaimana cara install Node.js di Ubuntu 20.04 dengan PM2.
Namun sebelum membahas cara install Node.js di Ubuntu, terlebih dahulu kami akan menjelaskan tentang apa itu Node.js serta system requirement untuk dapat melakukan instalasinya. Simak informasi berikut ini.
Apa itu Node.js?
Node.js adalah suatu framework yang berfungsi untuk menjalankan JavaScript di sisi server, yang kemudian disajikan dalam bentuk konten web dinamis ke dalam web browser.
Node.js memungkinkan pengembangan aplikasi berbasis server yang bersifat cepat, skalabel, dan dapat menangani banyak proses secara bersamaan. Sedangkan PM2 adalah sebuah aplikasi process manager untuk Node.js.
Pada panduan kali ini, kami akan melakukan deploy dan install Node.js beserta PM2 di VPS Ubuntu 20.04.
Persiapan Sistem :
• VPS KVM Rumahweb
• OS Ubuntu 20.04 atau 22.04
• Ram 2 - 4 GB, Disk 10GB
Bagi Anda yang belum memiliki VPS, Anda bisa membeli VPS Murah dari Rumahweb yang menyediakan 2 pilihan lokasi Data Center serta berbagai pilihan OS yang dapat Anda gunakan.
Cara Install Node.js
Terdapat tiga cara berbeda untuk melakukan install Node.js di server Ubuntu 20.04:
1. APT : Menggunakan Apt untuk melakukan installasi Node.js, pada metode ini akan menginstall menggunakan package default Dari repository Ubuntu.
2. PPA : Menggunakan repository PPA untuk melakukan installasi Node.js dengan versi yang diinginkan.
3. NVM : Menginstall Node Version Manager, berfungsi sebagai pengatur versi Node.js, semua versi akan diinstall dan dapat berganti versi NodeJS sesuai keinginan.
Pada panduan ini, kami akan memilih untuk menggunakan opsi 2, yaitu menggunakan opsi PPA untuk memasang Node.js dengan stable version untuk menghemat resource dan memilih versi node yang paling stabil yaitu v18.16.0.
- Download Package dan Extract Node.js.
wget -c https://nodejs.org/dist/v18.16.0/node-v18.16.0-linux-x64.tar.xz
tar xvf node-v18.16.0-linux-x64.tar.xz
- Buat direktori Node.js dan pindahkan Package yang telah di extract.
sudo mkdir /usr/local/lib/nodejs
sudo cp -Rv node-v18.16.0-linux-x64 /usr/local/lib/nodejs/18.16.0
- Buat link Node.js ke process linux.
sudo ln -s /usr/local/lib/nodejs/18.16.0/bin/node /usr/bin/node
sudo ln -s /usr/local/lib/nodejs/18.16.0/bin/npm /usr/bin/npm
sudo ln -s /usr/local/lib/nodejs/18.16.0/bin/npx /usr/bin/npx
- Cek versi Node.js yang berjalan.
node -v
v18.16.0
Deploy Apps Node.js di Ubuntu
Selanjutnya kami akan membuat contoh app Node.js untuk menampilkan text “Halo Rumahweb”. Caranya sebagai berikut.
- Atur direktori app Node.js yang dijalankan. Kami akan meletakkan file app pada folder /var/www/nodejs.
sudo mkdir /var/www/nodejs
sudo chmod -R 755 /var/www/nodejs
sudo chown -R $USER:$USER /var/www/nodejs
- Buat file app.js yang akan menjadi running file Node.js pada PM2.
cd /var/www/nodejs
touch app.js
nano app.js
- Isi file app.js dengan script berikut.
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Halo Rumahweb\n');
}).listen(3000, '127.0.0.1');
console.log('Server running at http://127.0.0.1:3000/');
Pada contoh script diatas, res.end dapat diinputkan text yang akan ditampilkan, yaitu Halo Rumahweb. Sedangkan Listen 3000 adalah port yang akan kita gunakan untuk running Node.js.
- Jalankan Aplikasi Node.js, aplikasi dapat diakses dari IPVPS:port seperti http://203.175.8.223:3000 pada browser.
node app.js
Jika instalasi berhasil, maka akan tampil ‘Halo Rumahweb’ seperti gambar berikut.
Cara Install PM2
PM2 (Process Manager 2) adalah alat manajemen proses untuk aplikasi Node.js. Fungsi utamanya adalah memantau, mengelola, dan menjaga aplikasi Node.js tetap berjalan secara terus-menerus. PM2 dapat digunakan untuk memulai, menghentikan, dan mengelola proses aplikasi.
PM2 akan sangat berfungsi apabila terdapat server down atau program Node.js yang tidak berjalan, pm2 akan melakukan auto-restart agar app berjalan normal kembali. Berikut adalah cara install PM2 di Ubuntu.
- Gunakan npm untuk menginstal PM2 secara global.
sudo npm install pm2 -g
sudo ln -s /usr/local/lib/nodejs/18.16.0/lib/node_modules/pm2/bin/pm2 /usr/bin/pm2
- Cek versi PM2 yang berjalan.
pm2 -v
- Jalankan Script Node.js yang dibuat sebelumya menggunakan PM2.
pm2 start app.js
Setelah dijalankan, akan muncul debug sebagai berikut:
[PM2] Spawning PM2 daemon with pm2_home=/home/nodejs/.pm2
[PM2] PM2 Successfully daemonized
[PM2] Starting /var/www/nodejs/app.js in fork_mode (1 instance)
[PM2] Done.
????????????????????????????????????????????????????????????????????????????????????????????????????????????
? App name ? id ? version ? mode ? pid ? status ? restart ? uptime ? cpu ? mem ? user ? watching ?
????????????????????????????????????????????????????????????????????????????????????????????????????????????
? app ? 0 ? N/A ? fork ? 3410 ? online ? 0 ? 0s ? 0% ? 13.2 MB ? nodejs ? disabled ?
????????????????????????????????????????????????????????????????????????????????????????????????????????????
Use `pm2 show <id|name>` to get more details about an app
- Selanjutnya, aktifkan service PM2 agar tetap berjalan saat Boot.
sudo pm2 startup systemd
- Daftar perintah untuk mengelola PM2 melalui terminal.
• Tampilkan List App : pm2 list
• Tampilkan informasi : pm2 info app
• Restart PM2 : pm2 restart app
• Menghentikan PM2 : pm2 stop app
• Monitoring Proses yang berjalan : pm2 monit
Install Nginx Reverse Proxy
Nginx berfungsi sebagai webserver untuk menangani request yang masuk ke Node.js. Dengan Nginx, aplikasi yang sebelumya hanya bisa diakses pada ip_vps:port, dapat diganti dengan nama domain dengan menggunakan skema (Reverse Proxy).
- Install dan Konfigurasi Nginx.
apt install nginx
nano /etc/nginx/sites-available/default
- Isi file konfigurasi nginx dengan reverse proxy.
server {
listen 80;
server_name namadomain_anda;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
Pada file konfigurasi diatas, ketika terdapat akses ke domainsaya.com, maka Nginx sebagai reverse Proxy akan melakukan forward ke aplikasi Node.js yang berjalan pada port 3000.
- Test konfigurasi Nginx dan restart Nginx.
nginx -t
systemctl restart nginx
- Pengujian Akses.
Jika sebelumya akses menggunakan http://203.175.8.223:3000, maka setelah dilakukan reverse Proxy, aplikasi Node.js kita dapat diakses melalui nama domain Anda.
- Untuk installasi SSL pada domain, Anda bisa mengikuti panduan berikut. langkah selanjutnya dapat mengikuti panduan berikut ini : Cara install SSL di nginx ubuntu
Demikian adalah panduan installasi Node.js beserta deploy Node.js menggunakan PM2 Nginx, semoga bermanfaat.