ローカル用SFUサーバを別端末で起動させる方法

今回は、以前構築したSFUサーバを、別端末で起動させる機会があったので、その際に行った内容を記事にしてみました。

今回はオンプレミスで一切外部への通信を行わないという条件のため、以前構築したサーバのファイル群をそのまま別端末にコピーします。

起動するためのファイル

今回はcmdファイルからps1ファイルを実行して必要な設定に書き換えた形でサーバを起動させます。

cmdファイル

今回はシンプルな命令のみなので、不要かもしれませんが、後で追加のコマンドが必要になった場合を想定して準備しました。

@echo off #出力を見やすくするための呪文
powershell .\ps_ins.ps1 #PowerShellを起動して指定したファイルの内容を実行
pause #一通りの結果を確認するため、キーを押すまで窓が閉じない様にする

ps1ファイル

必要なサーバ設定の書き換えとサーバの起動を行っています。

# IPv4アドレスを持つネットワークインターフェースを取得し、ループバックインターフェースを除外する。
$nicIPs = Get-NetIPAddress -AddressFamily IPv4 | Where-Object {$_.InterfaceAlias -ne "Loopback Pseudo-Interface 1"} | Select-Object -ExpandProperty IPAddress

$localIp = ""

# ローカルIP取得。
foreach ($nicIP in $nicIPs) {
    if ($nicIP -Like "192.168*") {
        write-output "Path : $HostsPath  IP:  $nicIP"
        $localIp = $nicIP
    }
}

# SFUサーバのhostをローカルIPに書き換え。
$sfu = "sfu_server.js"
$ENCODING = "UTF8"
(Get-Content $sfu -Encoding $ENCODING) | `
  foreach { $_ -replace "192.168.xxx.xxx",$localIp } | `
  Set-Content $sfu -Encoding $ENCODING


# webサーバのhostをローカルIPに書き換え。
$ssl = "conf\extra\httpd-ssl.conf"
$ENCODING = "UTF8"
(Get-Content $ssl -Encoding $ENCODING) | `
  foreach { $_ -replace "192.168.xxx.xxx",$localIp } | `
  Set-Content $ssl -Encoding $ENCODING

write-output "Server Start"

# SFUサーバをバックグラウンドで起動。
forever start .\server_master.js

# webサーバをサービスに追加。
.\bin\httpd  -k install

# webサーバを起動。
.\bin\httpd  -k restart

write-output "Has completed"

この2つのファイルを、コピーしてきたファイル群のフォルダ直下に配置して、cmdファイルを実行するとwebサーバとSFUサーバが起動して、ビデオ通話が可能になります。