From 6fb163a71241fb1068d873ff3b69bbccc9172429 Mon Sep 17 00:00:00 2001 From: Yik Teng Hie Date: Thu, 29 Jul 2021 17:46:52 +0800 Subject: [PATCH] add pm2 process manager guide --- nodeJS/PM2.md | 73 ++++++++++++++++++++++++++++++++++++++++++ nodeJS/pm2-deploy.PNG | Bin 0 -> 41964 bytes 2 files changed, 73 insertions(+) create mode 100644 nodeJS/PM2.md create mode 100644 nodeJS/pm2-deploy.PNG diff --git a/nodeJS/PM2.md b/nodeJS/PM2.md new file mode 100644 index 0000000..f7130f1 --- /dev/null +++ b/nodeJS/PM2.md @@ -0,0 +1,73 @@ +# PM2 Quick Start + +* Process Manager for Deployment of node js app +* [Reference](https://pm2.keymetrics.io/docs/usage/quick-start/) +* ![](./pm2-deploy.PNG) + + + +```sh +# install pm2 +$ npm i pm2@latest -g + +# serve static site created by react +# pm2 serve --spa +$ pm2 serve build 8082 --spa + +# to serve web app using "ecosystem.config.js" +# serve at port 3001 (configured in index.js) +$ pm2 start ecosystem.config.js + +# start app as daemon +$ pm2 start server.js --name "wallet-api" + +$ pm2 list + +# stop process and start again +$ pm2 restart + +# start new process, after started, stop old process +$ pm2 reload + +$ pm2 logs + +$ pm2 stop + +$ pm2 delete all + +# terminal based monitoring dashboard +$ pm2 monit +``` + + + +* [Ecosystem](https://pm2.keymetrics.io/docs/usage/application-declaration/) + +* [vuejs deployment](https://medium.com/@kamerk22/deploy-vue-js-ssr-vuetify-on-production-with-pm2-and-nginx-ec7b5c0748a3) + +* To generate `ecosystem.config.js` + + ```sh + $ pm2 ecosystem + ``` + + + +* `ecosystem.config.js` generated using above command + +```json +module.exports = { + apps: [ + { + name: 'web-apps', + script: './app-server/index.js', + watch: true, + env: { + NODE_ENV: 'production', + }, + }, + ], +}; + +``` + diff --git a/nodeJS/pm2-deploy.PNG b/nodeJS/pm2-deploy.PNG new file mode 100644 index 0000000000000000000000000000000000000000..0e2db95edcb1b3ee98a088d70211c721cd7bf48b GIT binary patch literal 41964 zcmd?Rc{o(>|39upl1d>;GHsH?vY-i4Q)a(8Ee!jo$`d!!Wzu))1E*IyV=ef`Ge%{afxjgRYE#|cC z$u+A~S4l}pt+6;|W-leR43d&sa(3kk$sNOR=#u2uk|6t&rc$NtY7EK6a_{3d$EBpo z@N%My(voZ0Yp2cyNlC43T>M!=4tyzjBlnJl+3_>C-I)zmrD`Y3OT!=9EnnFEa*5K~ zHHlZzc-53 z|Ngn@NgC>oyxS)A-xmYK<)|!}k|Kus0H`lR+F}Y)SV1ydo%~ZRRjP{Ae{+a{wi)j(D+##e1$!b$){v{OA#{#@|Ug zMXSJVpy%oV%6j0Z`R;Q0yz$he&#fe^Y=l*<=T0*F0vz(9UGLWGGs4?P1EyEp&Ol!# z5rixGPMPq_H9i4uuWih55xq}QiRt2`Qj9)u5`MiA(=_L>wHye4j8 zUj@8IBJN`IR|5-Gg2nXDB3J#VSx&hNDns(;&$zpy=h=W?)$N&bq@tHS<-CH<^35;JW7Ro0_td;Qnbm6U>}8W3h*R*@vx}nylGLpy9j+VvZRfU*AI;-4doiR!?Hq zx#{+(7tLIxt&GO~M+T}L=HRYLuMTDx#(k`~vm)|&w-ujK>HjXht>*N}?RxczR<}DH z_t0dkop(N@^>Urk(q6u{hhA;HDEP=_UC&{8ew|}!?(D^?M4W@WTg{^d5(cy<3lm!@ zR8!y{_ggH^m7-jB6oGGX9#yg8+QxgpUK6zu+nYznNgE52Y9^)66w!UH@JYvYZG z&6eEMDWH7}-|a~~NG6v5D+*!u3AV%5>1Ctc`brm5_~RxS%Yt2pD?y54YGZOsD!+i* z&-^x+|HkX$#uUd_v^~kJ9W7DR*zW>u==aV$vw>Fut%j@{5GzlF@K0h+O>?5!Dogwf zQ*9V`oY{LZKW^vT;)XaqJF=hu^3heQ&+K)Jm$8P5?K=$$1xi!nGr=o`7_9~pBw)7w zYDNb{q)uZTfj)#X-xomk@a+h1N%!ea{qldN?R`VXHbJ9ySt~n1bi>tct;23i?1a8E zTKczE=ediR4VL^R&$Cq6{!w@Do&IU*LrM9SW)E5Bi73>2 oQPNxDDg{Z~gTKnr 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 literal 0 HcmV?d00001