UNPKG

meteorupdev

Version:

Meteorupdev is a meteor enhancement tools

169 lines (120 loc) 6.67 kB
部署 Meteor 项目工具 [English Guide](https://github.com/meteorup/meteorupdev/blob/master/README.md) meteorupdev 是一个 Meteor 项目快速部署工具,帮助开发人员快速、简单、安全的部署 Meteor 项目到服务器上。 可以通过 npm 安装下载 meteorup 命令。 _(ps:注意:meteorupdev 只支持在 linux 或 osx 系统中使用!)_ ## 安装 meteorupdev 命令行工具 ```bash $ npm install meteorupdev -g ``` 如果你没有安装 Nodejs 和 npm 可以看这里[通过 NVM 安装 Nodejs 和 NPM](https://keymetrics.io/2015/02/03/installing-node-js-and-io-js-with-nvm/) **配置你的服务器** ```bash > $meteorupdev setup ``` 使用 meteorupdev 部署很简单,只需要两个步骤。 第一步:需要配置你的主机信息到本地项目的 package.json 文件中。然后通过 meteorupdev setup 命令完成服务器的环境安装和设置。setup 命令只支持 CentOS 和 Ubuntu 服务器操作系统。 setup 命令会在你的服务器上自动下载安装 NVM,nodejs,pm2,mongodb 等部署 meteor 需要的软件(mongodb 根据您的配置信息选择安装)。一台服务器只需要 setup 一次即可,重复在一台服务器上执行 setup 命令不会有任何效果。 _(ps:setup 配置服务器会用时比较长,服务器网络环境好的情况下1分钟左右,一般需要5-10分钟左右,这里 meteorupdev 已经做了很多优化工作,使用国内的镜像安装软件。但一台服务器只需配置一次即可。)_ **部署 Meteor 项目到你的服务器** ``` > $meteorupdev  push ``` 经过上面的 setup 命令之后,你的服务器已经有了部署 meteor 项目的软件环境。可以通过 push 命令将你的 meteor 程序部署到你的服务器了。 每次运行 meteorupdev push 都会将你本地最新代码部署到服务器上,并覆盖之前同名的项目,但在服务器上会自动备份之前项目的代码和数据。你可以手动后退到之前部署过的任意版本。 **配置和部署之前,需要先完善 package.json 文件中的服务器信息** 在配置和部署之前需要设置 package.json 文件,以下就是 package.json 配置文件的样例。将以下内容加入到你项目的 package.json 文件中,如果没有 package.json 文件,请新建一个 package.json 文件。 **package.json** ``` "server": { "host": "192.168.0.234", "username": "root", "//password": "password", "//":" or pem file (ssh based authentication)", "//": "WARNING: Keys protected by a passphrase are not supported", "pem": "~/.ssh/id_rsa", "//":" Also, for non-standard ssh port use this", "sshOptions": { "port" : 22 }, "//":" server specific environment variables", "env": {} }, "setup": { "//": "Install MongoDB on the server. Does not destroy the local MongoDB on future setups", "mongo": true, "//": "Application server path . must in /usr /opt /home /alidata directory.", "path": "/usr/local/meteorup" }, "deploy": { "//": "Application name (no spaces).", "appName": "best", "//": "Configure environment", "//": "ROOT_URL must be set to your correct domain (https or http)", "env": { "YJENV": "test", // customize environment "MONGO_URL": "mongodb://127.0.0.1:27017/best", "PORT": 8181, "ROOT_URL": "http://192.168.0.234:8181" } } ``` **项目部署回撤** 登录服务器,进入 /usr/local/meteorup 目录,这个目录是由你的 package.json 配置文件中 setup 下 path 字段配置决定的,所以每次 push 到服务器上的项目都在这个目录下。通过 tree 你可以看到部署到服务器上的项目目录结构。 ``` > $ ssh root@server > $ cd /usr/local/meteorup > > # tree -L 2 > > ├── app.json > ├── current > │   └── bundle > ├── last20160622204939 > │   └── bundle > ├── last20160622205649 > │   └── bundle > ├── last20160622210322 > │   └── bundle > ├── last20160622211151 > │   └── bundle > ├── last20160622211636 > │   └── bundle > └── tmp ``` 这是个项目部署到服务器上的目录结构,可以看到所有部署过的项目都会一个备份镜像,current 目录下是当前项目的运行目录。如果要回撤到任意版本,只需要手动修改一个目录名为 current 即可。 例如: ``` > mv current backup > $ mv last20160622204939 current > $ pm2 start app.json ``` **查看部署到服务器上的状态** ``` > $ ssh root@server > $ pm2 ls > > ┌──────────┬────┬──────┬───────┬────────┬─────────┬────────┬──────────────┬──────────┐ > │ App name │ id │ mode │ pid │ status │ restart │ uptime │ memory │ watching │ > ├──────────┼────┼──────┼───────┼────────┼─────────┼────────┼──────────────┼──────────┤ > │ wechat │ 0 │ fork │ 11557 │ online │ 5 │ 3D │ 100.527 MB │ disabled │ > │ webot │ 1 │ fork │ 14845 │ online │ 0 │ 2D │ 69.844 MB │ disabled │ > └──────────┴────┴──────┴───────┴────────┴─────────┴────────┴──────────────┴──────────┘ ``` 服务器是通过 pm2 管理 node 服务的,所以你可以通过 pm2 的各种命令查看项目日志,管理你的项目服务。 ## 部署完成的语音提示 config in package.json file. default would say “finished” ```bash $ "notice": "Well done" ``` ## 更新 meteorupdev ```bash $ npm install meteorupdev -g ``` ## 问题 如果提示这样的错误: sudo: sorry, you must have a tty to run sudo 请通过 ssh 登录到服务器中,找到 /etc/sudoers 文件,注释 Default requiretty 配置信息即可 ``` sudo vi /etc/sudoers #Default requiretty ``` ## License 协议 Meteorupdev is made available under the terms of the MIT License (MIT)