Linux VPS上的node应用管理工具
发布于 11 年前 作者 yyx990803 4359 次浏览 最后一次编辑是 8 年前

为了在自己的VPS上发布node应用,给自己写了一个。用了一段时间貌似还挺稳定。

  • 提供一个VPS上的命令行界面,用来创建/删除/启动/停止/查看服务器上的node应用
  • 每一个应用都有一个git repo. 在开发机器上git push = 发布并重启应用进程。可以自定义push以后重启之前额外干些什么。
  • 基于pm2。pm2有的功能都具备,比如进程挂了自动重启,日志,cluster,监视进程资源等。只需要把node_modules里面pm2的可执行文件link到/usr/local/bin里。

更多见github文档:https://github.com/yyx990803/pod

2 回复

没什么人看,稍微补充两句吧。

这个玩意儿主要是嫌forever/pm2这样的进程管理工具还是太麻烦所以才写的。我理想的node发布就是每次commit以后git push就自动搞定了。这个工具可以帮我做到这一点。下面简单说说部署流程:

  • 一个全新的VPS,上去以后装上nginx,git和node,(这个过程请自己google)然后sudo npm install -g pod

  • 配置一下ssh。把你的public key放到VPS上也好,把密码放在~/.ssh/config里也好,总之最好能做到无密码登陆。我们假设配置好以后vps的host名字叫做myvps

  • 在服务器上第一次运行pod,会提示你选一个路径放文件。确保选择一个你的账号有所有权限不需要sudo的地方。

  • 然后创建一个新应用:pod create hello。这时候会创建一个空的git仓库,以及一个从这个仓库clone出来的work copy。复制一下这个git仓库的路径,比如/srv/repos/hello.git

  • 运行pod list,会显示当前所有应用的运行状态和监听的端口。如何用nginx reverse proxy我就不说了,自行google。

  • 在你本地的项目里,git remote add deploy ssh://myvps/srv/repos/hello.git 。默认的主文件是app.js,你可以在package.json里面通过main这一项来指定用的主文件。至此,设置完成。

  • 从今以后,每次写了点东西要发布的时候,只需commit然后 git push deploy master。远端的git hook会自动让work copy pull,npm install(以防依赖有变化),然后用pm2重启应用进程。如果你想要重启前先跑个测试什么的,也可以自定义hook的内容。

更多选项请看顶楼github连接(英文)。

有人看, 这种工具一定要大力支持.

回到顶部