Skip to content

サーバの設置方法

Satoshi Tanaka edited this page May 4, 2021 · 10 revisions

サーバの設置方法

ここでは、GUIを持たないLinux環境にMondetoのサーバを設置する方法を説明します。

必要なソフトウェア

  • Git
  • Node.js (バージョン14以降)
  • Wine (バージョン5.5以降)
    • 比較的新しいバージョンなので、インストール方法に注意が必要です。例えばUbuntu 20.04 LTSではwine-developmentパッケージを使用します。
  • Xvfb

シグナリングサーバ

Mondetoはクライアントとサーバを接続するために、シグナリングサーバと呼ばれる案内人のようなプログラムを使います。 シグナリングサーバは、Mondetoサーバ自体と別のマシンで実行してもかまいません。

シグナリングサーバ

シグナリングサーバ(tana/Mondeto-Signaling)はNode.jsおよびTypeScriptを使用しているため、次のようにセットアップします。

$ git clone https://github.com/tana/Mondeto-Signaling.git
$ cd Mondeto-Signaling/
$ npm install  # 必要なNPMパッケージをインストールする
$ npm run build  # TypeScriptをコンパイルする

シグナリングサーバにはいくつかの設定項目(設定ファイル内のコメントを参照)がありますが、まずはデフォルト設定で起動します。

$ npm run run

> mondeto-signaling@1.0.0 run /mnt/g/OneDrive/signaler2
> node dist/app.js

Server: ws://127.0.0.1:3000/oS1GOH3IZtv6LGIL8nE2xI3aLfrvE9tOfGdjApffRuB5VM02sXt80A8tWsB1D6Ic
Client: ws://127.0.0.1:3000/uK5Ay42NwB3YI6RD9XlDusY2r5iwM9eqEbsWRYC3jkvYF4I5hTCu0hMuX2SdhIyj

Mondetoのサーバやクライアントには、Server:Client:の右に表示されたURLを入力します(後述)。

シグナリングサーバはWebSocketを使用しているので、必要に応じてルータやファイアウォールの設定を行ってください。 またサーバを外部に公開する場合は、config.ymlを編集し、TLS(HTTPS)による暗号化を有効にすることを推奨します。

Mondetoサーバ

現在のところ、MondetoはLinux用にビルドすることができません。そこで、LinuxでWindowsアプリケーションを実行するための互換レイヤであるWineを用いて実行します。 また、WineでMondetoを動かす際はX Window Systemが動作している必要があるので、Xvfbを使い、実際のディスプレイとは無関係のXサーバを立ち上げます。

$ unzip Mondeto_0.0.2_win64.zip  # アーカイブを展開
$ cd Mondeto_0.0.2_win64  # 展開して出てきたディレクトリに入る

$ Xvfb &  # バックグラウンドでXサーバを起動(デフォルト設定ではディスプレイ番号0)
$ export DISPLAY=:0  # ディスプレイ0を使うように環境変数を設定
$ wine Mondeto.exe -batchmode -nographics <サーバ用アドレス>  # サーバを起動

ただし<サーバ用アドレス>の部分は、シグナリングサーバを起動したときServer:の右に表示されたアドレス(上の例ではws://127.0.0.1:3000/oS1GOH3IZtv6LGIL8nE2xI3aLfrvE9tOfGdjApffRuB5VM02sXt80A8tWsB1D6Ic)を使ってください。

接続する

設置したサーバに接続する際は、Mondeto起動時のメニューでClientを選択し、アドレスとしてシグナリングサーバのクライアント用アドレス(Client:の右に表示、上の例ではws://127.0.0.1:3000/uK5Ay42NwB3YI6RD9XlDusY2r5iwM9eqEbsWRYC3jkvYF4I5hTCu0hMuX2SdhIyj)を入力してください。 ただしIPアドレス(上の例では127.0.0.1)は、シグナリングサーバを実行しているマシンのIPアドレスに置き換えてください。