インストール手順 (Windows)

Windows Serverでのインストール手順をご説明します。

概要

Boltz パッケージについて

Boltz パッケージは、送信エンジン BoltzEngine と、BoltzEngine を利用したリファレンス実装 BoltzMessenger の2つが含まれます。
BoltzEngine はデーモンサービスです。BoltzEngine 単体ではメッセージ配信しか行わないため、
メッセージの内容やデバイスの管理はアプリごとに作成する必要があります。

BoltzMessengerBoltzEngine を使ったサービスのリファレンス実装です。
BoltzMessenger には、管理画面、iOS アプリ、Android アプリ、API が含まれます。
BoltzMessenger のソースコードはすべてお渡しするため、そのまま使っていただいても、カスタマイズしていただいても構いません。
(カスタマイズされた部分はサポート対象外となります)

このドキュメントについて

この文書では、Windows 版の BoltzMessenger を動作させるまでの手順を解説します。
インストーラは、途中でインストールするコンポーネントを選択するようになっており、コンポーネントは4つあります。

コンポーネント 役割
BoltzEngine BoltzEngine 本体です。
BoltzMessenger Gateway BoltzMessenger のAPIサービスです。
BoltzMessenger Admin BoltzMessenger の管理サイトです。
BoltzMessenger Web BoltzMessenger のフロントエンドAPI・ウェブアプリケーションです。
BoltzEngine HTTP Proxy BoltzEngine を利用するためのHTTP APIサービスです。

上記のコンポーネントは、すべて1台のサーバに同居することも可能ですが、すべて別のサーバにインストールしても使用可能です。
このドキュメントでは、すべて1台のサーバにインストールを行い、分散させる場合の設定項目を補足として記載します。
BoltzEngine HTTP Proxy については『BoltzEngine Toolsマニュアル』を参照ください。

ドキュメントの表記

BoltzEngine インストーラは、インストール途中で選択したコンポーネントによって、手順が増減しますので、本ドキュメントでは、お客様に実施していただく操作を、タイトル行の末尾に括弧書きで表現します。

> タイトル(BoltzMessenger Gateway / BoltzMessenger Admin)

と表記する場合は、BoltzMessenger Gateway または BoltzMessenger Admin を選択した方が対象になります。
BoltzEngine だけをインストールされる場合は不要です。

システム条件

BoltzMessenger をインストールするには、以下の条件を満たしている必要があります。

  • Windows Server 2012 以降
  • 100Mbps 以上のネットワーク(大きいほうがよい)
  • (iOSへプッシュを行う場合) gateway.push.apple.com の 2195 ポートに対して通信可能であること
  • (iOSへプッシュを行う場合) feedback.push.apple.com の 2196 ポートに対して通信可能であること
  • (Androidへプッシュを行う場合) android.googleapis.com の 443 ポートに対して通信可能であること
  • (FireOSへプッシュを行う場合) api.amazon.com の 443 ポートに対して通信可能であること
  • アプリからアクセスするためのポートを解放可能であること(デフォルトでは TCP/13070)
  • 管理画面へアクセスするためのポートを解放可能であること(TCP/80 または TCP/443)

インストール

IIS のインストール

BoltzMessenger Admin を使う場合、BoltzEngine よりも先に IIS のインストールが必要です。
IIS を、サーバーマネージャからインストールします。

役割と機能の追加 (BoltzMessenger Admin)

役割と機能の追加を選択します。

インストールの種類の選択 (BoltzMessenger Admin)

「役割ベースまたは機能ベースのインストール」を選択して「次へ」を押下します。

対象サーバーの選択 (BoltzMessenger Admin)

BoltzMessenger Admin をインストールしたいサーバーを選択して「次へ」を押下します。

サーバーの役割の選択 (BoltzMessenger Admin)

「IIS サーバー」にチェックを入れて、「次へ」を押下します。

機能の選択 (BoltzMessenger Admin)

BoltzMessenger Admin を使うためには、 ASP.NET と .NET Framework 3.5 Features が追加で必要です。チェックを入れてから「次へ」を押下してください。

また、WebPIで導入するPHP 5.6は、Microsoft Visual C++ 2012 Redistributable (x86)に依存しています。
本インストーラには含みませんので、マイクロソフトのサイトからダウンロード・インストールを行ってください。

Web サーバーの役割 (BoltzMessenger Admin)

特に何もする必要はありません。「次へ」を押下してください。

役割サービスの選択 (BoltzMessenger Admin)

BoltzMessenger Admin を使われるだけなら、そのまま「次へ」を押下して次の画面を表示してください。

インストールオプションの確認 (BoltzMessenger Admin)

内容を確認して、「インストール」を押下してください。

インストールの進行状況 (BoltzMessenger Admin)

インストールが完了したら「閉じる」を押下します。

BoltzEngine 本体のインストール

BoltzEngine セットアップウィザードの開始 (BoltzEngine / BoltzMessenger Gateway / BoltzMessenger Admin)

BoltzEngineSetup.exe をダブルクリックすると、セットアッププログラムが起動します。

「次へ」を押下して進めてください。

セットアップの種類 (BoltzEngine / BoltzMessenger Gateway / BoltzMessenger Admin)

BoltzEngineのコンポーネントが1つでもインストールされている場合、「アップグレード」「再インストール」の選択を行う画面を表示します。
既存の設定を残す場合は「アップグレード」を選択してください。 または、設定も変更する場合は「再インストール」を選択してください。

どちらを選んでも、送信履歴や端末情報などのデータは残しますので、設定を残すかどうかだけで判断ください。

この画面は新規インストールの場合は表示しません。

インストール先の指定 (BoltzEngine / BoltzMessenger Gateway / BoltzMessenger Admin)

BoltzEngineをインストールするフォルダを選択します。
選択したフォルダ以下に、BoltzEngine の配布物がコピーされます。
「次へ」を押下して進めてください。

コンポーネントの選択 (BoltzEngine / BoltzMessenger Gateway / BoltzMessenger Admin)

インストールするコンポーネントを選択します。
各コンポーネントは『このドキュメントについて』で挙げた内容が表示されていますので、必要に応じてチェックを切り替えてください。チェックが入っているコンポーネントのみインストールされます。

ここでは、1台のサーバで BoltzMessenger を動作させるため、すべてにチェックを入れて「次へ」を押下します。

追加のインストール (BoltzMessenger Gateway / BoltzMessenger Admin)

『コンポーネントの選択』で BoltzMessenger Gateway または BoltzMessenger Admin Site をインストールした場合、MySQL をインストールするかどうか確認が入ります。
BoltzMessenger Gateway または BoltzMessenger Admin Site の実行には MySQL が必要になるため、
はじめて MySQL をお使いになる場合はここで「 MySQL をインストール」にチェックを入れてください。
この場合の手続きは、『(補足)MySQL のインストール』をご参照ください。

もし、これまでに MySQL を使われている場合、ここで MySQL をインストールする必要はありません。

プログラムグループの指定 (BoltzEngine / BoltzMessenger Gateway / BoltzMessenger Admin)

スタートメニューに追加するプログラムグループの名前を入力します。

インストール準備完了 (BoltzEngine / BoltzMessenger Gateway / BoltzMessenger Admin)

上記で選択した内容が確認できます。
内容に相違なければ、「インストール」を押下してください。
選択したコンポーネントによって、必要なファイルのコピーを開始します。

ファイルのコピーが完了した後、MySQL のインストールを行うように設定していた場合、
MySQL のインストーラが起動しますので『(参考) MySQL のインストール』を行ってください。
インストール完了後、「次へ」を押下します。

アンロックパスワードの入力 (BoltzEngine)

BoltzEngineのアンロックパスワードを入力して、「次へ」を押下します。
アンロックパスワードはご契約時の際にお渡しします。

体験版の場合は、この画面は表示されません。

BoltzMessenger データベースの作成 (BoltzMessenger Gateway / BoltzMessenger Admin)

MySQL のアカウントを入力します。
ここでは、データベースの作成を行いますので、作成権限を持つユーザ資格情報を入力してください。

「次へ」を押下すると、データベースへ接続して初期データを書き込みます。
また、IIS の Default Web Site 以下に /boltz-messenger という仮想ディレクトリを追加します。

Apple Push Notification service の設定 (BoltzMessenger Gateway / BoltzMessenger Admin)

BoltzMessenger Gateway が APNs へ接続する時の設定を行います。
Apple から ダウンロードした Push 通知用の秘密鍵と証明書を設定してください。
アドレスは、ほとんどの場合、デフォルトで問題ありません。
(証明書を取得する手順は、Apple のサイト等をご参照ください)

設定後、「次へ」を押下して進めてください。
APNsへの通知を行わない場合は、「設定なし」を押下してください。

注意: 秘密鍵ファイルは、パスワード設定なしの状態で作成ください

Google Cloud Messaging の設定 (BoltzMessenger Gateway / BoltzMessenger Admin)

BoltzMessenger Gateway が GCM へ接続する時の設定を行います。
Server Key は、Google のサイトで生成したサーバキーをそのまま入力してください。
リクエストURLは、ほとんどの場合、デフォルトで問題ありません。

設定後、「次へ」を押下して進めてください。
GCMへの通知を行わない場合は、「設定なし」を押下してください。

Amazon Device Messaging の設定 (BoltzMessenger Gateway / BoltzMessenger Admin)

BoltzMessenger Gateway が ADM へ接続する時の設定を行います。
Client ID と Client Secret は、Amazon Developer Console で取得した値を入力してください。
各種URLは、ほとんどの場合、デフォルトで問題ありません。

設定後、「次へ」を押下して進めてください。
ADMへの通知を行わない場合は、「設定なし」を押下してください。

BoltzEngine セットアップウィザードの完了 (BoltzEngine / BoltzMessenger Gateway / BoltzMessenger Admin)

以上で、インストールは完了です。

BoltzMessenger Gateway または BoltzMessenger Admin をインストールした場合、
各種設定を C:¥ProgramData¥boltz-messenger¥config.yml という名前で保存します。
インストール後に設定を変更したい場合はテキストエディタ等で編集し、サービスを再起動してください。

config.yml の各種キーは以下の通りです。

親キー キー 意味
engine address boltz-master サービスのリクエスト先アドレス。省略時は localhost:13010 が設定されます。
engine protocol boltz-master サービスのプロトコル。省略時は net/rpc、grpc の場合は gRPC を使います。
engine secure boltz-master サービスとgRPC通信する場合であり、TLSで暗号化を行う場合は true にしてください。※1
apns key APNs 接続用の秘密鍵ファイルパス。パスワードなしで作ってください。
apns cert APNs 接続用の証明書ファイルパス。
apns gateway APNs リクエストを送信するアドレス。
apns feedback APNs フィードバックを受信するアドレス。
apns timeout APNs がメッセージを保持する有効期限(分、指定のない場合3日間)
apns skipVerify APNs 接続時にサーバ証明書を検証するかどうか。通常は false (デフォルト)にしてください
gcm key GCM 接続時のサーバキー。
gcm senderId GCM リクエストのSender ID。XMPP プロトコルを使う場合は必須です。
gcm url GCM リクエストを送信する URL。
gcm timeout GCM がメッセージを保持する有効期限(分、指定のない場合3日間)
gcm skipVerify GCM 接続時にサーバ証明書を検証するかどうか。通常は false (デフォルト)にしてください。
adm tokenUrl ADM がトークンを発行するためのURL。
adm originUrl ADM リクエストを送信するURLのオリジン。/以降は含めてはいけない。
adm clientId ADM トークンを取得するための Client ID。
adm clientSecret ADM トークンを取得するための Client シークレット。
adm skipVerify ADM 接続時にサーバ証明書を検証するかどうか。通常は false (デフォルト)にしてください。
webpush privateKey BASE64URL エンコードされたVAPID用の秘密鍵(パディングなし)
webpush publicKey BASE64URL エンコードされたVAPID用の公開鍵(パディングなし)
webpush subject 送信者の連絡先メールアドレスまたはURL(mailto: または https:)
webpush timeout WebPush でメッセージを保持する有効期限(分、指定のない場合3日間)
webpush skipVerify WebPush 接続時にサーバ証明書を検証するかどうか。通常は false (デフォルト)にしてください。
db user DB ログインユーザ。
db password DB ログインユーザのパスワード。
db address DB ホスト名とポート番号を:で区切ったもの(host:3306)。
db name データベース名。
admin salt boltz-messenger-init コマンドで生成したランダム値。
admin cipherSeed boltz-messenger-init コマンドで生成したランダム値。
admin tempDir 実行時キャッシュ等を保存するディレクトリ。省略可能。
admin triggerUrl boltz-messenger-gateway.service が待ち受けるURL。
admin displayTimezone 管理画面に表示される時刻のタイムゾーン。
admin apns_badge iOS 端末にバッジを付けるかどうか(trueを指定すると未読1のバッジが付く)
admin default_use_reserve 予約配信にチェックを入れるかどうか (trueを指定するとデフォルトでチェックが入る)
admin default_use_bandwidth 速度制限にチェックを入れるかどうか (trueを指定するとデフォルトでチェックが入る)
admin default_bandwidth 配信速度制御のデフォルト値を設定。
web salt boltz-messenger-init コマンドで生成したランダム値。
web tempDir 実行時キャッシュ等を保存するディレクトリ。省略可能。
web displayTimezone Web版BoltzMessenger に表示される時刻のタイムゾーン。

※1: boltz-master 自身には現在TLSをサポートしていませんので、環境に応じてロードバランサ等をご用意ください。

BoltzMessenger で APNs (iOS) へ通知を行う場合

iOSへPush通知を行う場合、config.yml の apns キーを設定し、正しい証明書を apns.key, apns.cert で設定したパスへ配置してください。

BoltzMessenger で GCM/FCM (Android) へ通知を行う場合

GCM/FCMへの通知は、gcm.url の値がhttps://またはhttp://で開始する場合、HTTPプロトコルでの通知を行います。
上記以外の場合は、XMPPプロトコルを使った通知を行います。

HTTPプロトコルの場合は gcm.senderId を省略可能ですが、XMPPプロトコルを使った通知を行う場合は gcm.senderId が必須です。

BoltzMessenger で ADM (FireOS) へ通知を行う場合

ADM へPush通知を行う場合、config.yml の adm キーを設定し、clientId と clientSecret の2つを設定してください。 それぞれの値は Amazon Developer Console のアプリケーション情報から取得できます。

BoltzMessenger で WebPush (Chrome/Firefox) へ通知を行う場合

webpush に使用する VAPID 用の鍵ペアは OpenSSL を使い、下記の要領で生成します。

$ openssl ecparam -name prime256v1 -genkey -noout -out vapid_private.pem
$ openssl ec -in vapid_private.pem -pubout -out vapid_public.pem
$ openssl ec -in vapid_private.pem -pubout -outform DER|tail -c 65|base64|tr -d '=' |tr '/+' '_-' > public_key.txt
$ openssl ec -in vapid_private.pem -outform DER|tail -c +8|head -c 32|base64|tr -d '=' |tr '/+' '_-' > private_key.txt

生成された public_key.txt および private_key.txt の内容を config.yml に記載してください。また、生成された 4 つのファイルは大切に保管してください。

BoltzMessenger で特定のプラットフォームにのみ配信する場合

apns、gcm、adm、webpush のキーを削除すると、削除したキーのサービスが無効になります。
BoltzMessenger のデータベースに端末が登録されても、無効化したプラットフォームへの通知は行いませんし、管理画面にも表示されません。

webpush キーを削除すると、BoltzMessenger Web のウェブアプリケーションは無効になりますが、フロントエンドAPIはこの影響を受けません。

BoltzMessenger で速度制限を行う場合

BoltzMessenger は engine.protocol を grpc に設定した場合に、1 秒あたりの通知速度制限をサポートしています。
有効にするためには、engine.address と engine.protocol の値を変更します。

engine:
  # boltz-master.serviceのgrpc_listen_addr値を設定
  address: localhost:13009
  # boltz-master.serviceとの通信にgRPCプロトコルを使う
  protocol: grpc
  # ロードバランサ等でHTTPSをサポートする場合はtrue
  secure: false

設定を反映するため、管理ツール→サービスを開き、Boltz Messenger Gateway を再起動してください。

BoltzMessenger の設定

BoltzMessenger を利用する場合、PHP のインストールと、IIS の設定を変更する必要があります。

WebPI (Web Platform Installer) のインストール (BoltzMessenger Admin)

IIS マネージャから、サーバを選択すると、Web Platform の利用を促すダイアログが表示されますので、「はい」を押下します。
そうすると、Internet Explorer でダウンロードサイトが表示されますので、ダウンロードして実行してください。
特にインストールダイアログ等はなく、IIS へ Web Platform Installer が追加され、実行します。

WebPI の実行 (BoltzMessenger Admin)

WebPI は、上記でダウンロードした実行ファイルをそのまま起動しても構いませんし、IIS の機能メニューから Web Platform Installer を選択しても構いません。
どちらもおなじメニューが表示されます。

PHP の選択 (BoltzMessenger Admin)

WebPI の上部にあるタブから、「製品」を選択します。
次に、左側に表示されるメニューから「フレームワーク」を選び、右側に表示される項目から PHP を探して、「追加」を押下してください。
(「追加」をクリックすると、ボタンが「削除」に切り替わります。)
PHP のバージョンは 2017 年 4 月現在、5.6 以上を選択してください。

MySQL Connector の選択 (BoltzMessenger Admin)

WebPI の上部にあるタブから、「製品」を選択します。
次に、左側に表示されるメニューから「データベース」を選び、MySQL Connector/Net を探して、「追加」を押下してください。

PHP 拡張モジュールの有効化 (BoltzMessenger Web)

BoltzMessenger Web の使用には intl モジュールの有効化が必要です。下記にある php.ini を開き、設定値を変更します。

C:\Program Files (x86)\PHP\(PHPバージョン)\php.ini

ini 上の [ExtensionList] セクションを探し、以下の行を追加してください。

extension=php_intl.dll

動作確認

仮想ディレクトリが以下のようになっていることを確認し、異なっていれば再作成してください。

アプリケーションパス ルートアプリケーション
仮想パス /boltz-messenger
物理パス (BoltzEngine をインストールした場所)¥boltz-messenger-admin¥app¥webroot

仮想ディレクトリ「/boltz-messenger」を選択し、右側メニューの「*:80 (http) 参照」を押下すると、
ブラウザが開いて管理画面が表示されます。
管理画面の使い方等は『運用マニュアル』をご参照ください。

URL Rewrite の選択 (BoltzMessenger Admin)

URL Rewrite を探して、「追加」を押下してください。
上記3つパッケージの追加が終わったら「インストール」を押下します。

ライセンスが表示されますので、同意される場合は「同意する」を押下してください。

(参考) MySQL のインストール

BoltzMessenger Gateway または BoltzMessenger Admin Site のインストールを選択した場合、
MySQL のインストールを行うか選択できます。
インストールを行う場合の手続きを以下にまとめます。

PHP 等と同様に、WebPI を用いて MySQL をインストールしても動作に影響はありません。

License Agreement (BoltzMessenger Gateway / BoltzMessenger Admin)

『追加のインストール』で「MySQL をインストール」にチェックを入れた場合、
インストールの途中で MySQL Installer が実行されます。
ライセンスを確認し、同意されましたら「I accept the license terms」にチェックを入れて「Next」を押下します。

Choosing a Setup Type (BoltzMessenger Gateway / BoltzMessenger Admin)

セットアップの種類を選択します。

BoltzMessenger は MySQL サーバが必要です。
用意されている種類の中では、「Client only」を除いてどれでも構いませんが、「Custom」を選択された場合は必ず、MySQL Server を含むように選択してください。

最小構成の「Server only」を選択して、「Next」を押下します。

もし、上記画像のエラーが表示された場合、『Choosing a Setup Type』まで戻って、「Custom」から必要な項目を選んでください。

最小構成は MySQL Servers/MySQL Server/MySQL Server 5.x/MySQL Server 6.x.xx - X64 だけを選択し、「Next」を押下します。

Installation (BoltzMessenger Gateway / BoltzMessenger Admin)

『Choosing a Setup Type』で選択した内容が表示され、Status は Ready to download になっていることを確認したら、
「Execute」を押下してインストールを行ってください。
すべての Status が Complete になれば「Next」を押下できるようになりますので、進めます。

完了したら「Next」を押下します。

Product Configuration (BoltzMessenger Gateway / BoltzMessenger Admin)

内容を確認し、「Next」を押下します。

Type and Networking (BoltzMessenger Gateway / BoltzMessenger Admin)

「Config Type」を「Server Machine」に変更してください。
その他はデフォルトで問題ありません。

Accounts and Roles (BoltzMessenger Gateway / BoltzMessenger Admin)

MySQL root のパスワードを設定します。
必要に応じて、ユーザの追加もできますが、ここではまだ追加しません。

Windows Service (BoltzMessenger Gateway / BoltzMessenger Admin)

デフォルトのまま「Next」を押下します。

Apply Server Configuration (BoltzMessenger Gateway / BoltzMessenger Admin)

Configuration Steps に、MySQL インストーラが行う設定が表示されています。
この画面では、特に変更する場所はないため、「Execute」を押下して設定変更を行います。

すべて終わったら「Finish」を押下して MySQL のインストールを完了します。

Product Configuration (BoltzMessenger Gateway / BoltzMessenger Admin)

Status が Configuration Complete となっていることを確認して「Next」を押下します。

Installation Complete (BoltzMessenger Gateway / BoltzMessenger Admin)

「Finish」を押下して、BoltzEngine のインストール画面へ戻ってください。

ご不明な点はありませんか?

機能の詳細、導入のご検討、お見積もり依頼などは、お気軽にお問い合わせください。
担当者から追ってご連絡いたします。

お問い合わせはこちら