meta data for this page
  •  

Perbedaan

Ini menunjukkan perbedaan antara versi yang terpilih dengan versi yang sedang aktif.

Tautan ke tampilan pembanding ini

Kedua sisi revisi sebelumnyaRevisi sebelumnya
Revisi selanjutnya
Revisi sebelumnya
nodejs:menjalankan_project_dengan_pm2 [2024/09/22 01:10] Mohammad Riza Nurtamnodejs:menjalankan_project_dengan_pm2 [2024/09/23 00:05] (sekarang) – revisi lama ditampilkan kembali (2024/09/22 06:06) Mohammad Riza Nurtam
Baris 1: Baris 1:
-====== Menjalankan project nodejs menggunakan PM2 ======+====== Menjalankan Project Node.js menggunakan PM2 ====== 
 + 
 +===== Install Node.js ===== 
 + 
 +Sebelumnya pastikan nodejs sudah terinstall. Lihat laman [[:nodejs:nodejs_di_debian_dan_ubuntu|instalasi]] nodejs.
  
 ===== Menyiapkan directory dari project ===== ===== Menyiapkan directory dari project =====
Baris 6: Baris 10:
  
 ==== Pindah ke directory /opt ==== ==== Pindah ke directory /opt ====
- 
 <code> <code>
 +
 cd /opt cd /opt
  
 </code> </code>
  
-Buat directory baru bernama projects+==== Buat directory baru bernama projects ====
  
 <code> <code>
Baris 19: Baris 23:
 </code> </code>
  
-Menyiapkan permission dari project+===== Menyiapkan permission dari project =====
  
-# buat group baru\\+Agar sistem linux anda aman, maka program akan dijalankan sebagai user biasa, bukan sebagai user root. Untuk itu perlu disiapkan permission dari project tersebut. Pada contoh kasus ini, kami menggunakan group projects sebagai group yang akan menjalankan program. 
 + 
 +==== Buat group baru ==== 
 + 
 +<code>
 sudo addgroup projects sudo addgroup projects
  
-# jadikan directory /opt/projects menjadi milik group projects\\+</code> 
 + 
 +==== Jadikan directory /opt/projects menjadi milik group projects ==== 
 + 
 +<code>
 sudo chgrp projects /opt/projects sudo chgrp projects /opt/projects
  
-# tambahkan user saat ini kepada group projects\\+</code> 
 + 
 +==== Tambahkan user saat ini kepada group projects ==== 
 + 
 +Pada kasus ini username yang akan menjalankan project adalah 
 + <font inherit/inherit;;#8e44ad;;inherit>saya</font>  . Perintah berikut ini menggunakan parameter -aG (huruf a kecil dan G kapital) yang berarti 
 + 
 +  * a: menambahkan user ke group tertentu, 
 +  * G: menambahkan tanpa menghapus user dari group yang sudah ada. 
 + 
 +<code>
 sudo usermod -aG projects saya sudo usermod -aG projects saya
  
-# masuk ke directory projects\\+</code> 
 + 
 +===== Menginisiasi project ===== 
 + 
 +==== Masuk ke directory projects ==== 
 + 
 +<code>
 cd /opt/projects cd /opt/projects
  
-Menginisiasi project+</code> 
 + 
 +==== Inisiasi sebuah project nest ==== 
 + 
 +Pada kasus ini kami membuat sebuah project bernama [[https://patra.smartsystem.id|PATRA]], dengan bahasa Javascript (bukan Typescript), menggunakan framework [[https://nestjs.com|Nestjs]]. Perintah ini akan secara otomatis membuatkan sebuah directory di dalam directory saat ini (''/opt/projects/''). 
 +<code>
  
-# inisiasi sebuah project nest\\ 
 sudo nest new patra –language=js sudo nest new patra –language=js
  
-# ubah kepemilikan directory patra ke group projects\\+</code> 
 + 
 +==== Ubah kepemilikan directory patra ke group projects ==== 
 + 
 +Agar user yang tergabung dalam group 
 + <font inherit/inherit;;#8e44ad;;inherit>projects</font>  dapat melakukan aktivitas di dalam directory, maka kepemilikannya perlu diubah menjadi group 
 + <font inherit/inherit;;#8e44ad;;inherit>projects</font> 
 + 
 +<code>
 sudo chgrp -R projects /opt/projects/patra sudo chgrp -R projects /opt/projects/patra
  
-8. test running project sebagai user biasa\\ +</code>
-npm run start\\ +
-# menghentikan proses\\ +
-[ctrl]+[c]+
  
-9. build project\\ +===== Menjalankan project =====
-npm run build+
  
-9install pm2 (global)\\+==== Ujicoba menjalankan project sebagai user biasa ==== 
 + 
 +Untuk menguji apakah program dapat berjalan, biasanya dicoba dengan menggunakan perintah 
 + 
 +<code> 
 +node app.js 
 + 
 +</code> 
 + 
 +atau jika menggunakan framework seperti diatas dapat juga dijalankan dengan perintah 
 + 
 +<code> 
 +npm run start 
 + 
 +</code> 
 + 
 +Untuk menghentikan program gunakan kombinasi tombol ** <font inherit/inherit;;#e74c3c;;inherit>[ctrl]+[c]</font> ** 
 + 
 +===== Menginstall, mengkonfigurasi dan menggunakan PM2 ===== 
 + 
 +==== Menginstall pm2 secara global ==== 
 + 
 +PM2 adalah sebuah service yang akan menjalankan program nodejs dan memantau program tersebut serta merestartnya jika dibutuhkan. Untuk menginstall PM2 secara global gunakan perintah berikut 
 + 
 +<code>
 sudo npm install -g pm2 sudo npm install -g pm2
  
-10. running project dengan pm2 sebagai user biasa\\ +</code>
-# tambahkan proses\\ +
-pm2 start /opt/projects/patra/index.js –name patra-api+
  
-melihat proses\\+==== Menjalankan program dengan pm2 sebagai user biasa ==== 
 + 
 +Untuk menambahkan program ke PM2, gunakan perintah 
 + 
 +<code> 
 +pm2 start node /opt/projects/patra/index.js –name patra 
 + 
 +</code> 
 + 
 +Untuk melihat proses yang sedang berjalan dapat menggunakan perintah 
 + 
 +<code>
 pm2 list pm2 list
  
-# menjadikan pm2 start otomatis ketika server reboot\\+</code> 
 + 
 +==== Menjadikan agar PM2 langsung berjalan saat boot ==== 
 + 
 +Agar PM2 dapat langsung berjalan saat server boot, gunakan perintah 
 + 
 +<code>
 pm2 startup pm2 startup
  
-# copy-paste perintah yang muncul pada tahapan diatas\\ +</code>
-sudo env PATH=$PATH:/usr/local/bin /usr/local/lib/node_modules/pm2/bin/pm2 startup systemd -u mriza –hp /home/mriza+
  
-# menyimpan daftar proses saat ini\\+Perintah tersebut akan memunculkan perintah yang akan dijalankan sebagai user root. Copy perintah yang muncul pada tahapan diatas dan jalankan. 
 + 
 +<code> 
 +sudo env PATH=$PATH:/usr/local/bin /usr/local/lib/node_modules/pm2/bin/pm2 startup systemd -u saya –hp /home/saya 
 + 
 +</code> 
 + 
 +Perintah ini membuat sebuah service baru atas nama user biasa, yaitu user 
 + <font inherit/inherit;;#8e44ad;;inherit>saya</font> 
 + 
 +Kita dapat menyimpan daftar proses saat ini, agar ikut berjalan saat server boot 
 + 
 +<code>
 pm2 save pm2 save
  
-# jika ingin mencoba, mematikan semua proses\\+</code> 
 + 
 +Jika ingin mencoba, mematikan semua proses 
 + 
 +<code>
 pm2 stop all pm2 stop all
  
-mematikan salah satu proses saja, gunakan id dari proses tersebut\\+</code> 
 + 
 +Jika ingin mematikan salah satu proses saja, gunakan id dari proses tersebut 
 + 
 +<code>
 pm2 stop 2 pm2 stop 2
  
-# menghidupkan service tertentu, gunakan id\\+</code> 
 + 
 +Menghidupkan service tertentu, gunakan id proses tersebut, misalnya 2 
 + 
 +<code>
 pm2 start 2 pm2 start 2
  
-# setelah konfigurasi pm2 selesai, restart server\\+</code> 
 + 
 +Setelah konfigurasi pm2 selesai, restart server 
 + 
 +<code>
 sudo reboot sudo reboot
 +
 +</code>