LoginSignup
0
1

More than 3 years have passed since last update.

Node.js+pm2で環境立ち上げる時のメモ

Last updated at Posted at 2018-11-17

読もう

https://github.com/sindresorhus/guides/blob/master/npm-global-without-sudo.md
http://pm2.keymetrics.io/docs/usage/quick-start/
https://qiita.com/poruruba/items/10df0d94e9127797498f
https://qiita.com/kenta8813/items/748d09c92c994dc74267
https://qiita.com/you21979@github/items/588bddb59378ce7303a2 (参考: pm2使わない場合)
http://pm2.keymetrics.io/docs/usage/startup/#generating-a-startup-script

やりたいこと

サーバーが再起動しても大丈夫なnodejsアプリ環境を立てる。pm2は専用の一般ユーザーで動かしたい。
のやりかたを毎回忘れるのでメモしたい。

かんきょう

Arch Linux on Raspberry Pi(初代

てじゅん

# aptやpacman、rpmなりでnodejs関連パッケージをインストールしておく
sudo pacman -S npm git

# pm2はsshからリモートサーバーへnon interactive shellでつなぐので、/usr/bin以外にPATHを通しづらい。
# なのでpm2だけは先にglobal installしておく。
sudo npm i -g pm2

# サービス用ユーザーnodeを作成(sudo禁止)
$ sudo useradd -m node 

# nodeユーザーにもssh公開鍵を登録しておく。(pm2 deploy用)
# sudo mkdir /home/node/.ssh
# sudo vim /home/node/.ssh/authorized_keys
# sudo chown node:node /home/node/.ssh/authorized_keys
# sudo chmod 600 /home/node/.ssh/authorized_keys

# nodeでログイン
$ sudo su - node

# npm -gを一般ユーザーでできるようにする。
# https://github.com/sindresorhus/guides/blob/master/npm-global-without-sudo.md
$ mkdir ~/.npm-packages
$ echo prefix=\${HOME}/.npm-packages >> .npmrc
$ echo NPM_PACKAGES="\${HOME}/.npm-packages" >> .bashrc
$ echo PATH="\$NPM_PACKAGES/bin:$PATH" >> .bashrc
$ source ~/.bashrc

# PM2
$ pm2 startup
# ↑この結果は環境によって異なる。
# sudoできないのを察してsudoできる環境で改めて↓をやれと言ってくる。親切すぎる。
# sudo env PATH=$PATH:/usr/bin /home/node/.npm-packages/lib/node_modules/pm2/bin/pm2 startup systemd -u node --hp /home/node
# nodeユーザーからlogoutし、一般ユーザーで言われるがまま実行。

# /etc/systemd/system/pm2-node.service の [Service]セクションに
# Restart=always
# を書き足してサービス起動
$ sudo systemctl daemon-reload
$ sudo systemctl start pm2-node

イテレーション

$ git commit
$ git push

# pm2 deploy中に何度もpassphraseを聞かれるのでssh-agent使うと楽
$ ssh-add ~/.ssh/id_rsa
$ pm2 deploy dev

???

  • npm -gを一般ユーザーでできるようにする、でググったら /usr/local/lib/node_modules のowner変えればいいよ!とか出てきてパワープレイすぎると思いました。
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1