在这篇文章之前我曾经写过一个一篇使用 webhook 来自动部署 NodeJS 项目的问题。由于要使用到 webhook 因此我就选择了 coding 来作一个代码仓库恰好也支持 webhook。可是,某些同窗可能不想把代码放到第三方的仓库上面,能不能直接在本地一行命令就部署到服务器上面呢?node
抛出这个问题以后,我便用 Google 搜素了一下,发现尤大大的 github 里面竟然有一个可以完美解决个人要求的 repo,太棒了!git
repo:PODgithub
首先须要一台 VPS,而且安装好 Node、npm 和 git。web
接着来安装 pod:面试
$ npm install -g pod
确保准备工做都作好后,连上你的 VPS,咱们须要在服务器上面先作一些操做。express
$ pod
直接在终端运行 pod 它会询问你是否使用当前目录,若是有特殊需求的话能够自行设置。而且在你设置的目录下建立两个文件夹,分别为:apps 和 repos。npm
$ pod create myapp
运行上面的命令后,它会输出一些内容,而且在 apps 和 repos 两个文件夹里面建立好名为 myapp 的文件夹和 .git 文件。json
它输出的内容里面有两个黄色字体标注的,分别是部署目录以及工做的目录。记住这两个路径,待会会使用到。服务器
前面两步都是在服务器上面操做的,接着咱们就须要把项目克隆到本地。app
$ git clone ssh://用户名@公网IP/黄色字体路径(woking)
克隆好事后,咱们在新建一个 remote 用来部署使用的。
$ git remote add deploy ssh://用户名@公网IP/黄色字体路径(repo)
git 操做都作好后,咱们就试下用 express 作一个简单的应用而且部署到服务器上面试试。
app.js
const express = require('express') const app = express(); app.use((req, res) => res.end('hello express!')) app.listen(8080)
package.json
{ "name": "myapp", "version": "1.0.0", "description": "", "main": "app.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "repository": { "type": "git", "url": "" }, "author": "", "license": "ISC", "dependencies": { "express": "^4.14.0" } }
.gitigore
node_modules .vscode/ .DS_Store dump.rdb
而后咱们就 commit 一下,而后 push 到服务器上面去,
$ git add . $ git commit -m "first commit" $ git push deploy master
保证本地 push 到服务器成功以后,咱们回到服务器上面去。运行:
$ pod list
看看本身的项目是否成功运行了,而后用公网 ip 访问一下页面是否成功出现了。
POD 还有它许多强大的功能,上面只是简单入门,想深刻了解的话请到 github 上,里面有详细的文档和案例。