セルフプッシュサービス

11256 ワード

CodePush(独自のプッシュサービスを構築)
参照:code-push-server
環境:Linux CentOS 7.5+mysql 80-community-release-el 7-1.noarch.rpm+node.js 10.14.0+code-push-server 0.5.2仮想マシンでの操作であり、Linuxはインストールされたばかりであるため、ゼロからステップを記録してLinuxインストールは書かず、私用のosダウンロードアドレスを添付します.http://mirrors.aliyun.com/centos/7.5.1804/isos/x86_64/CentOS-7-x86_64-Everything-1804.isoシステムが走り出すと、wgetダウンロードコマンドも走れないことに気づき、yum-y install wgetで解決します
git yum install git-coreのインストール
vimのインストール
yum -y install vim

screenのインストール(マルチスクリーン操作が便利で、ここではしばらく使えません)
yum install screen

そしてもちろんMySQL公式サイトのダウンロードアドレスを持ってきてダウンロードを実行します(Linuxダウンロードファイルコマンド:「wget-P」+保存ディレクトリ+ダウンロードアドレス):wgethttps://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm
rpmファイルは小さくて、ダウンロードしてyumソースを配置します
rpm -ivh mysql80-community-release-el7-1.noarch.rpm

どのバージョンが使用可能かを確認します(vi/etc/yum.repos.d/mysql-community.repoを編集フォーマットに入力し、必要なバージョンenabledを1に変更します.他のバージョンは0に変更します.すべてのバージョンenabled=1の場合、デフォルトで最新バージョンのMySQLが起動します)ここには5.7バージョンがインストールされています.
yum repolist all | grep mysql

インストールを開始します.インストール中にインストール内容を確認する必要があります.yを入力して車に戻ればいいです.
yum install mysql-community-server

インストール完了後にサービスを開始
service mysqld start

サービスステータスを表示します
service mysqld status

mysqlサービスが開始されました
MySQLでは最初にランダムパスワードが生成され、ログからランダムパスワードが表示されます.
grep "temporary password" /var/log/mysqld.log

次にMySQLにログインします
mysql -u root -p

自建推送服务_第1张图片
パスワードを入力してログインに成功したらパスワードを変更します
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Test.1234';

次にnode.jsをダウンロードし、圧縮パッケージ自建推送服务_第2张图片を解凍、削除します.
cd /
wget https://nodejs.org/dist/v10.14.0/node-v10.14.0-linux-x64.tar.xz
tar -xvf node-v10.14.0-linux-x64.tar.xz -C /
rm -rf node-v10.14.0-linux-x64.tar.xz

ソフト接続を確立し、バージョン番号を確認して成功したかどうかを確認します.
ln -s /node-v10.14.0-linux-x64/bin/npm /usr/local/bin/
ln -s /node-v10.14.0-linux-x64/bin/node /usr/local/bin/
node -v

在这里插入图片描述
nodeバージョンcode-push構築インストールPM 2の表示
npm i -g pm2
ln -s /node-v10.14.0-linux-x64/lib/node_modules/pm2/bin/pm2 /usr/local/bin

ここには2つの方法があります(2つの方法は後で少し違います):1、code-push-serverを直接インストールし、プロファイルを変更します
npm install code-push-server -g
cd /node-v10.14.0-linux-x64/lib/node_modules/code-push-server/config
vim config.js

2、code-pushコードをローカルにダウンロードし、プロファイルを修正する
git clone https://github.com/lisong/code-push-server.git
cd code-push-server
npm install
cd config
vim config.js

プロファイル変更の説明:自建推送服务_第3张图片
データベース構成を変更してデータベースを初期化する前に、プロファイルconfig.jsを変更する必要があります.まず、データベース構成を変更します(実はここではパスワードしか変更していません).次に、local.storageDir、local.downloadUrl、common.dataDir、jwt.tokenSecretのいくつかの値を変更して、それぞれ説明します:1、local.storageDir:自分のパスに変更します.2、local.downloadUrl:ファイルダウンロードアドレスCodePush Serverアドレス+'/download'download対応app.js内のアドレス(ここではIPアドレスのみ変更)3、jwt.tokenSecret:jwt署名鍵を登録し、https://www.grc.com/passwords.htmランダム文字列を取得し、値INSERT_を置き換えます.RANDOM_TOKEN_KEY 4、common.dataDir:自分のパスに変更し、読み取り/書き込み権限(図中のパスは事前に作成したフォルダ)があることを確認してconfig.js構成を変更する
自建推送服务_第4张图片
code-push-serverのMySQLデータベースの初期化
cd ../
./bin/db init --dbhost "127.0.0.1" --dbport "3306"  --dbuser "root" --dbpassword "Test.1234"

プロセス.jsonプロファイルの作成
vim process.json
    (  script code-push-server     ,CONFIG_FILE        config.js    ):

{
    "apps" : [
        {
            "name"      : "code-push-server",
            "max_memory_restart" : "300M",
            "script"    : "bin/www",
//        ,    github          ,script        bin/www
            "instances"  : "max", //      ,max cpu  
            "exec_mode"  : "cluster", //    ,        
            "env" : {
                "NODE_ENV" : "production",
                "PORT" : 3000,
                "CONFIG_FILE" : "/node-v10.14.0-linux-x64/lib/node_modules/code-push-server/config/config.js"
//        ,    github          ,CONFIG_FILE        config/config.js
            }
        }
    ]
}

corsライブラリの追加(ドメイン間アクセスの解決)
npm install cors

app.jsを編集しcorsライブラリを参照
vim app.js

次のコードリファレンスcorsを追加
var cors = require('cors')
app.use(cors()); 

pm 2のいくつかのコマンドを列挙します.
pm2 start process.json //   
pm2 restart process.json //  
pm2 stop process.json //   
// pm2    
pm2 ls
pm2 show code-push-server
tail -f "output file path"

code-push-server自建推送服务_第5张图片を起動
コマンドでページを検証します
curl -I http://192.168.216.128:3000/検証ページ自建推送服务_第6张图片
注意:手順に従ってここまで行くと、仮想マシンのLinuxシステムにはポートが開発されていないため、ポートを開く必要があります.
firewall-cmd --zone=public --add-port=3000/tcp --permanent
firewall-cmd --reload
firewall-cmd --list-port

Linuxオープンポート効果図:自建推送服务_第7张图片
デフォルトアカウントadmin、パスワード123456自建推送服务_第8张图片自建推送服务_第9张图片
ログインページ
ログインtoken code-push-server//方法1:npmでcode-push-serverを直接インストールする
npm install -g code-push-server@latest
cd /node-v10.14.0-linux-x64/lib/node_modules/code-push-server
./bin/db upgrade --dbhost "127.0.0.1" --dbport "3306"  --dbuser "root" --dbpassword "Test.1234"

//データベースの更新
pm2 restart code-push-server # restart service

//方法2:githubから直接ソースコードをダウンロードしてcode-push-serverをインストールする
cd /path/to/code-push-server
git pull --rebase origin master
./bin/db upgrade --dbhost "127.0.0.1" --dbport "3306"  --dbuser "root" --dbpassword "Test.1234"

//データベースの更新
pm2 restart code-push-server # restart service

App端Ionic具体的には原生アンドロイド集積Ionic 3+CodePushを参考にして、react native資料が少し多いならネットで自分で探しましょう
code-push-server         ,       code-push-cli   code-push-server。
code-push login http://192.168.216.128:3000

//管理者パスワードの変更例:
curl -X PATCH -H "Authorization: Bearer mytoken" -H "Accept: application/json" -H "Content-Type:application/json" -d '{"oldPassword":"123456","newPassword":"654321"}' http://192.168.216.128:3000/users/password

App側構成config.js









code-push-serverをWeb管理でcode-push-cliを使いたくない場合は、Web管理code-push-serverを使用します.code-push-serverの構成を変更し、config.jsのcommonにwebのアドレスを追加します.
"codePushWebUrl":"http://192.168.216.128:3001"

code-push-webソースコードをローカルにダウンロードし、インストール後に構成を変更します(正式線とテスト線のアドレス)
cd /
git clone https://github.com/lisong/code-push-web.git
cd code-push-web
npm install
vim ./src/config.js

自建推送服务_第10张图片
実行:
//テストは直接実行すればよい
npm start

//正式発表先ビルドパッケージ
npm run build --release
cd build
npm install
node server.js
code-push    
code-push login http://192.168.216.128:3000
code-push logout   
code-push access-key ls      token
code-push access-key rm       access-key
code-push app add            app
code-push app remove    rm         app
code-push app rename        app
code-push app list    ls          app
code-push app transfer  app             

サポートされるストレージ・モード
local (default) //     
qiniu (qiniu) //      
s3 (aws) //       
oss (aliyun) //      
tencentcloud //