1. 程式人生 > >code-push-server的部署(原始碼)

code-push-server的部署(原始碼)

感謝lisong團隊的開發

搭建code-push服務的原因:

  1. 微軟服務有時提供不及時,push程式碼慢

  2. 鍛鍊能力

  3. 便於開發管理

部署前準備

安裝mysql

此處可參見我的另一篇部落格

連結

下載原始碼

此步驟容易遇到的坑:npm install報錯。

解決方案:

  • npm version 檢查npm版本
  • npm i -g npm 更新版本命令
  • npm cache clean 清除快取
  • rm -rf ~/.npm 清除快取
# 下載原始碼
>>>git clone https://github.com/lisong/code-push-server

# 進入原始碼目錄並安裝相應模組
>>>cd code-push-server && npm install # 修改配置檔案 >>>vim config/config.js

配置檔案說明

此處使用的是mysql,所以只需要更改db裡面的配置即可

此處容易遇到的坑有資料庫連線問題:請注意db內容的填寫

資料庫配置部分

 db: {
    username: "root",
    password: null,
    database: "codepush",
    host: "127.0.0.1",
    dialect: "mysql"
  },
  //七牛雲端儲存配置 當storageType為qiniu時需要配置
  qiniu: {
    accessKey: ""
, secretKey: "", bucketName: "", downloadUrl: "" //檔案下載域名地址 }, //阿里雲端儲存配置 當storageType為oss時需要配置 oss: { accessKeyId: "", secretAccessKey: "", endpoint: "", bucketName: "", prefix: "", // 物件Key的字首,允許放到子資料夾裡面 downloadUrl: "", // 檔案下載域名地址,需要包含字首 }, //檔案儲存在本地配置 當storageType為local時需要配置

檔案儲存部分

  • 在系統中新建兩個目錄分別為data目錄和storage目錄,可直接新建於原始碼目錄中

  • 更改local中的storageDir的檔案目錄

  • 更改common中dataDir的檔案目錄

  • 按需更改downloadUrl

  • 建議更改jwt中的內容

  local: {
    storageDir: "/Users/tablee/workspaces/storage",
    //檔案下載地址 CodePush Server 地址 + '/download' download對應app.js裡面的地址
    downloadUrl: "http://localhost:3000/download",
    // public static download spacename.
    public: '/download'
  },
  jwt: {
    // 登入jwt簽名金鑰,必須更改,否則有安全隱患,可以使用隨機生成的字串
    // Recommended: 63 random alpha-numeric characters
    // Generate using: https://www.grc.com/passwords.htm
    tokenSecret: 'INSERT_RANDOM_TOKEN_KEY'
  },
  common: {
    dataDir: "/Users/tablee/workspaces/data",
    //選擇儲存型別,目前支援local,oss,qiniu,s3配置
    storageType: "local"
  },

啟動服務

確保在原始碼目錄中

此處遇到的坑初始化資料庫一直失敗

原因:

  • 資料庫連線問題

    • 許可權問題
    • 資料庫是否開放
    • 是否能用root使用者連線
  • 命令問題:使用官方的命令初始化的時候,報錯

    • localhost、root、password都需填寫對應資料庫配置檔案的相同資訊
    • dbport按mysql配置填寫
    • 資料庫中不能存在codepush這個資料庫
# 初始化資料庫
>>>./bin/db init --dbhost localhost --dbuser root  --dbpassword password --dbport 3306

# 初始化資料庫確保不報錯才能啟動服務
>>>./bin/www

# 若無報錯,則表示成功啟動,預設埠為3000

可在本地開啟瀏覽器進行檢驗,輸入127.0.0.1:3000

區域網\伺服器檢驗,輸入ip:3000

關於修改密碼的一些坑

# github上給出的命令如下
>>>curl -X PATCH -H "Authorization: Bearer" -H "Accept: application/json" -H "Content-Type:application/js
on" -d {"oldPassword":"123456", "newPassword":"654321"} http://127.0.0.1/users/password

# 此處需要進行說明的時候,token獲取之後,是直接黏貼在Authorization: Bearer之後,注意Bearer後面有個空格,看情況加上

# http://127.0.0.1/此部分是結合自己的伺服器/區域網ip進行更改

# 如果命令還是報錯,請嘗試在{}內的雙引號加上轉義,如下
>>>curl -X PATCH -H "Authorization: Bearer yourtoken" -H "Accept: application/json" -H "Content-Type:application/js
on" -d {\"oldPassword\":\"123456\", \"newPassword\":\"654321\"} http://127.0.0.1/users/password

# 返回為200則表示修改成功,如下
{"status":"OK"}

更多詳細配置可檢視專案說明

原始碼地址

參考文章