Skip to content

Latest commit

 

History

History
136 lines (93 loc) · 3.46 KB

install-server.md

File metadata and controls

136 lines (93 loc) · 3.46 KB

Install Node and NPM

see

(chosen latest LTS version)

Install PM2

$ sudo npm i -g pm2

Install MySQL

notice. mysql8.x default auth caching_sha2_pasword not support in node-mysql2 see issue

Install Redis

Get code-push-server from NPM

$ npm install @shm-open/code-push-server@latest -g

Init Database

$ code-push-server-db init --dbhost "your mysql host" --dbport "your mysql port"  --dbuser "your mysql user" --dbpassword "your mysql password"

output: success

Configure code-push-server

check out the supported config items in config.ts

save the file process.json for PM2, and add your config items to "env"

some config items have to be changed:

  • local.storageDir change to your directory, make sure have read/write permissions.
  • local.downloadUrl replace 127.0.0.1 to your machine ip.
  • common.dataDir change to your directory,make sure have read/write permissions.
  • jwt.tokenSecret get the random string from https://www.grc.com/passwords.htm, and replace the value INSERT_RANDOM_TOKEN_KEY.
  • db config: username,password,host,port change to your own

Start Service

$ pm2 start process.json

Restart Service

$ pm2 restart process.json

Stop Service

$ pm2 stop process.json

Check Service is OK

$ curl -I http://YOUR_CODE_PUSH_SERVER_IP:3000/

return httpCode 200 OK

HTTP/1.1 200 OK
X-DNS-Prefetch-Control: off
X-Frame-Options: SAMEORIGIN
Strict-Transport-Security: max-age=15552000; includeSubDomains
X-Download-Options: noopen
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Content-Type: text/html; charset=utf-8
Content-Length: 592
ETag: W/"250-IiCMcM1ZUFSswSYCU0KeFYFEMO8"
Date: Sat, 25 Aug 2018 15:45:46 GMT
Connection: keep-alive

Use redis impove concurrent and security

config redis in config.js

  • updateCheckCache
  • rolloutClientUniqueIdCache
  • tryLoginTimes

Upgrade from old version

$ npm install -g @shm-open/code-push-server@latest
$ code-push-server-db upgrade --dbhost "your mysql host" --dbport "your mysql port"  --dbuser "your mysql user" --dbpassword "your mysql password" # upgrade codepush database
$ pm2 restart code-push-server # restart service

view pm2 logs

$ pm2 ls
$ pm2 show code-push-server
$ tail -f "output file path"

Default listen Host/Port 0.0.0.0/3000

you can change it in process.json, env: PORT,HOST

Use code-push-cli manage CodePush Server

$ npm install @shm-open/code-push-cli@latest -g
$ code-push login http://YOU_SERVICE_IP:3000 #login in browser account:admin password:123456

Change Admin Password

$ curl -X PATCH -H "Authorization: Bearer mytoken" -H "Accept: application/json" -H "Content-Type:application/json" -d '{"oldPassword":"123456","newPassword":"654321"}' http://YOU_SERVICE_IP:3000/users/password