{"id":44803,"date":"2024-01-17T15:17:54","date_gmt":"2024-01-17T08:17:54","guid":{"rendered":"https:\/\/www.rumahweb.com\/journal\/?p=44803"},"modified":"2025-04-10T13:47:00","modified_gmt":"2025-04-10T06:47:00","slug":"cara-install-nodejs-ubuntu","status":"publish","type":"post","link":"https:\/\/www.rumahweb.com\/journal\/cara-install-nodejs-ubuntu\/","title":{"rendered":"Cara Install Node.js dan PM2 di Ubuntu"},"content":{"rendered":"\n<p>Node.js adalah <em>framework open-source<\/em> yang dirancang untuk menjalankan skrip JavaScript di sisi server. Node.js memungkinkan <em>developer <\/em>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.<\/p>\n\n\n\n\n\n<p>Namun sebelum membahas cara install Node.js di Ubuntu, terlebih dahulu kami akan menjelaskan tentang apa itu Node.js serta <em>system requirement<\/em> untuk dapat melakukan instalasinya. Simak informasi berikut ini.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Apa itu Node.js?<\/h2>\n\n\n\n<p><a href=\"https:\/\/blog.rumahweb.com\/apa-itu-nodejs-adalah\/\" target=\"_blank\" rel=\"noopener\" title=\"nodejs adalah\">Node.js<\/a> adalah suatu <em>framework <\/em>yang berfungsi untuk menjalankan JavaScript di sisi server, yang kemudian disajikan dalam bentuk konten web dinamis ke dalam web browser. <\/p>\n\n\n\n<p>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.<\/p>\n\n\n\n<p>Pada panduan kali ini, kami akan melakukan deploy dan install Node.js beserta PM2 di VPS Ubuntu 20.04.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Persiapan Sistem :\n\u2022 VPS KVM Rumahweb\n\u2022 OS Ubuntu 20.04 atau 22.04\n\u2022 Ram 2 - 4 GB, Disk 10GB<\/code><\/pre>\n\n\n\n<p>Bagi Anda yang belum memiliki VPS, Anda bisa membeli<strong> <a href=\"https:\/\/www.rumahweb.com\/vps-murah\/\" target=\"_blank\" rel=\"noopener\" title=\"vps murah\">VPS Murah<\/a><\/strong> dari Rumahweb yang menyediakan 2 pilihan lokasi Data Center serta berbagai pilihan OS yang dapat Anda gunakan.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Install NodeJS di Ubuntu<\/h2>\n\n\n\n<p>Terdapat tiga cara berbeda untuk melakukan install Node.js di server Ubuntu 20.04:<\/p>\n\n\n\n<p>1. <strong>APT <\/strong>: Menggunakan Apt untuk melakukan installasi Node.js, pada metode ini akan menginstall menggunakan package default Dari repository Ubuntu.<\/p>\n\n\n\n<p>2. <strong>PPA <\/strong>: Menggunakan repository PPA untuk melakukan installasi Node.js dengan versi yang diinginkan.<\/p>\n\n\n\n<p>3. <strong>NVM <\/strong>: Menginstall Node Version Manager, berfungsi sebagai pengatur versi Node.js, semua versi akan diinstall dan dapat berganti versi NodeJS sesuai keinginan.<\/p>\n\n\n\n<p>Pada panduan ini, kami akan memilih untuk menggunakan opsi 2, yaitu menggunakan opsi PPA untuk memasang Node.js dengan stable version untuk menghemat <em>resource <\/em>dan memilih versi node yang paling stabil yaitu v18.16.0.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>&nbsp;Download Package dan Extract Node.js.<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>wget -c https:\/\/nodejs.org\/dist\/v18.16.0\/node-v18.16.0-linux-x64.tar.xz\n\ntar xvf node-v18.16.0-linux-x64.tar.xz<\/code><\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li>&nbsp;Buat direktori Node.js dan pindahkan <em>Package <\/em>yang telah di <em>extract<\/em>.<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo mkdir \/usr\/local\/lib\/nodejs\n\nsudo cp -Rv node-v18.16.0-linux-x64 \/usr\/local\/lib\/nodejs\/18.16.0<\/code><\/pre>\n\n\n\n<ol start=\"3\" class=\"wp-block-list\">\n<li>&nbsp;Buat link Node.js ke process linux.<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo ln -s \/usr\/local\/lib\/nodejs\/18.16.0\/bin\/node \/usr\/bin\/node\n\nsudo ln -s \/usr\/local\/lib\/nodejs\/18.16.0\/bin\/npm \/usr\/bin\/npm\n\nsudo ln -s \/usr\/local\/lib\/nodejs\/18.16.0\/bin\/npx \/usr\/bin\/npx<\/code><\/pre>\n\n\n\n<ol start=\"4\" class=\"wp-block-list\">\n<li>&nbsp;Cek versi Node.js yang berjalan.<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>node -v\nv18.16.0<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Deploy Apps Nodejs di Ubuntu<\/h2>\n\n\n\n<p>Selanjutnya kami akan membuat contoh app Node.js untuk menampilkan text &#8220;Halo Rumahweb&#8221;. Caranya sebagai berikut.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Atur direktori app Node.js yang dijalankan. Kami akan meletakkan file app pada folder <em>\/var\/www\/nodejs<\/em>.<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo mkdir \/var\/www\/nodejs\nsudo chmod -R 755 \/var\/www\/nodejs\nsudo chown -R $USER:$USER \/var\/www\/nodejs<\/code><\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li>Buat file app.js yang akan menjadi running file Node.js pada PM2.<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>cd \/var\/www\/nodejs\ntouch app.js\nnano app.js<\/code><\/pre>\n\n\n\n<ol start=\"3\" class=\"wp-block-list\">\n<li>Isi file app.js dengan <em>script <\/em>berikut.<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>var http = require('http');\n\nhttp.createServer(function (req, res) {\n\n&nbsp;&nbsp;res.writeHead(200, {'Content-Type': 'text\/plain'});\n\n&nbsp;&nbsp;res.end('Halo Rumahweb\\n');\n\n}).listen(3000, '127.0.0.1');\n\nconsole.log('Server running at http:\/\/127.0.0.1:3000\/');<\/code><\/pre>\n\n\n\n<p>Pada contoh <em>script <\/em>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.<\/p>\n\n\n\n<ol start=\"4\" class=\"wp-block-list\">\n<li>Jalankan Aplikasi Node.js, aplikasi dapat diakses dari IPVPS:port seperti http:\/\/203.175.8.223:3000 pada browser.<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>node app.js<\/code><\/pre>\n\n\n\n<p>Jika instalasi berhasil, maka akan tampil &#8216;Halo Rumahweb&#8217; seperti gambar berikut.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2024\/01\/tampilan-nodejs-di-vps-ubuntu.png\"><img loading=\"lazy\" decoding=\"async\" width=\"312\" height=\"190\" src=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2024\/01\/tampilan-nodejs-di-vps-ubuntu.png\" alt=\"Tampilan nodejs setelah di install\" class=\"wp-image-44849\" srcset=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2024\/01\/tampilan-nodejs-di-vps-ubuntu.png 312w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2024\/01\/tampilan-nodejs-di-vps-ubuntu-300x183.png 300w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2024\/01\/tampilan-nodejs-di-vps-ubuntu-270x164.png 270w\" sizes=\"auto, (max-width: 312px) 100vw, 312px\" \/><\/a><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\">Cara Install PM2<\/h2>\n\n\n\n<p>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.<\/p>\n\n\n\n<p>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.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>&nbsp;Gunakan npm untuk menginstal PM2 secara global.<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo npm install pm2 -g\n\nsudo ln -s \/usr\/local\/lib\/nodejs\/18.16.0\/lib\/node_modules\/pm2\/bin\/pm2 \/usr\/bin\/pm2<\/code><\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li>&nbsp;Cek versi PM2 yang berjalan.<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>pm2 -v<\/code><\/pre>\n\n\n\n<ol start=\"3\" class=\"wp-block-list\">\n<li>&nbsp;Jalankan Script Node.js yang dibuat sebelumya menggunakan PM2.<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>pm2 start app.js<\/code><\/pre>\n\n\n\n<p>Setelah dijalankan, akan muncul debug sebagai berikut:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#091;PM2] Spawning PM2 daemon with pm2_home=\/home\/nodejs\/.pm2\n\n&#091;PM2] PM2 Successfully daemonized\n\n&#091;PM2] Starting \/var\/www\/nodejs\/app.js in fork_mode (1 instance)\n\n&#091;PM2] Done.\n\n????????????????????????????????????????????????????????????????????????????????????????????????????????????\n? App name ? id ? version ? mode ? pid  ? status ? restart ? uptime ? cpu ? mem       ? user    ? watching ?\n????????????????????????????????????????????????????????????????????????????????????????????????????????????\n? app ? 0  ? N\/A     ? fork ? 3410 ? online ? 0       ? 0s     ? 0%  ? 13.2 MB   ? nodejs ? disabled ?\n????????????????????????????????????????????????????????????????????????????????????????????????????????????\nUse `pm2 show &lt;id|name&gt;` to get more details about an app\n<\/code><\/pre>\n\n\n\n<ol start=\"4\" class=\"wp-block-list\">\n<li>&nbsp;Selanjutnya, aktifkan service PM2 agar tetap berjalan saat Boot.<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo pm2 startup systemd<\/code><\/pre>\n\n\n\n<ol start=\"5\" class=\"wp-block-list\">\n<li>&nbsp;Daftar perintah untuk mengelola PM2 melalui terminal.<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>\u2022 Tampilkan List App : pm2 list\n\u2022 Tampilkan informasi&nbsp; : pm2 info app\n\u2022 Restart PM2 : pm2 restart app\n\u2022 Menghentikan PM2 : pm2 stop app\n\u2022 Monitoring Proses yang berjalan : pm2 monit<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Install Nginx Reverse Proxy&nbsp;<\/h2>\n\n\n\n<p>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&nbsp;(<em>Reverse Proxy<\/em>).<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Install dan Konfigurasi Nginx.<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>apt install nginx\n\nnano \/etc\/nginx\/sites-available\/default<\/code><\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li>Isi file konfigurasi nginx dengan <em>reverse proxy<\/em>.<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>server {\n\n&nbsp;&nbsp;&nbsp;&nbsp;listen 80;\n\n&nbsp;&nbsp;&nbsp;&nbsp;server_name <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-gridlove-acc-color\">namadomain_anda<\/mark>;\n\n&nbsp;&nbsp;&nbsp;&nbsp;location \/ {\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;proxy_pass http:\/\/127.0.0.1:3000;\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;proxy_http_version 1.1;\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;proxy_set_header Upgrade $http_upgrade;\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;proxy_set_header Connection 'upgrade';\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;proxy_set_header Host $host;\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;proxy_cache_bypass $http_upgrade;\n\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\n\n}<\/code><\/pre>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2024\/01\/test.png\"><img loading=\"lazy\" decoding=\"async\" width=\"447\" height=\"248\" src=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2024\/01\/test.png\" alt=\"settting pm2 dan install node.js  di ubuntu\" class=\"wp-image-44863\" srcset=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2024\/01\/test.png 447w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2024\/01\/test-300x166.png 300w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2024\/01\/test-370x205.png 370w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2024\/01\/test-270x150.png 270w\" sizes=\"auto, (max-width: 447px) 100vw, 447px\" \/><\/a><\/figure>\n<\/div>\n\n\n<p>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.<\/p>\n\n\n\n<ol start=\"3\" class=\"wp-block-list\">\n<li>Test konfigurasi Nginx dan restart Nginx.<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>nginx -t\n\nsystemctl restart nginx<\/code><\/pre>\n\n\n\n<ol start=\"4\" class=\"wp-block-list\">\n<li>Pengujian Akses.<\/li>\n<\/ol>\n\n\n\n<p>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.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2024\/01\/tampilan-nodejs.png\"><img loading=\"lazy\" decoding=\"async\" width=\"422\" height=\"147\" src=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2024\/01\/tampilan-nodejs.png\" alt=\"tampilan hasil instalasi nodejs di ubuntu\" class=\"wp-image-44866\" srcset=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2024\/01\/tampilan-nodejs.png 422w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2024\/01\/tampilan-nodejs-300x105.png 300w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2024\/01\/tampilan-nodejs-370x129.png 370w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2024\/01\/tampilan-nodejs-270x94.png 270w\" sizes=\"auto, (max-width: 422px) 100vw, 422px\" \/><\/a><\/figure>\n<\/div>\n\n\n<ol start=\"5\" class=\"wp-block-list\">\n<li>Untuk installasi SSL pada domain, Anda bisa mengikuti panduan berikut. langkah selanjutnya dapat mengikuti panduan berikut ini : <a href=\"https:\/\/www.rumahweb.com\/journal\/cara-install-ssl-lets-encrypt-di-nginx-ubuntu\/\">Cara install SSL di nginx ubuntu<\/a><\/li>\n<\/ol>\n\n\n\n<p>Demikian adalah panduan installasi Node.js beserta deploy Node.js menggunakan PM2 Nginx, semoga bermanfaat.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>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 [&hellip;]<\/p>\n","protected":false},"author":349,"featured_media":44868,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[177],"tags":[2162,768,2161,703],"class_list":{"0":"post-44803","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-vps","8":"tag-node-js","9":"tag-nodejs","10":"tag-pm2","11":"tag-ubuntu"},"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/posts\/44803","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/users\/349"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/comments?post=44803"}],"version-history":[{"count":0,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/posts\/44803\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/media\/44868"}],"wp:attachment":[{"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/media?parent=44803"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/categories?post=44803"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/tags?post=44803"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}