ブラウザーからの確認と操作
JR-D Receiver の画面は、受信機を動かしている機械とは別の端末(スマートフォンや別の PC)のブラウザーでも開けます。ブラウザーで開くこの画面を web console と呼びます。web console では、受信内容の確認、音声の再生、設定の変更ができます。
この機能は 0.4.0 系以降で利用できます。0.3.0 以前のデスクトップ版には、この設定はありません。
有効にする
| 版 | 有効にする方法 |
|---|---|
| デスクトップ版(macOS と Windows) | 設定画面の「ブラウザからの操作を有効にする」をオンにします。既定のポートは 35262 です |
| ヘッドレス版(Linux) | 最初から有効です |
デスクトップ版では、有効にすると、開く URL が設定画面に出ます。指定したポートが使えないときは、設定画面にエラーが出て、無効のままになります。
届く範囲と保護
web console は、既定では受信機を動かしている機械の中(127.0.0.1)だけで待ち受けます。ヘッドレス版では、待ち受けるホストを指定して LAN 内へ出すこともできます。ほかの端末からは、そのままでは届きません。
JR-D Receiver には、パスワードなどの保護の機能がありません。別の端末から届かせる手段と、そこでの認証は、利用者が用意します。このページでは、Tailscale と SSH のポート転送の 2 つを例に挙げます。
届かせる範囲は、信頼できる端末だけにしてください。web console を開けた人は、設定の変更とライセンスの認証の解除を含む、すべての操作ができるからです。ルーターのポート開放で、インターネットへ直接出すことは避けてください。
Tailscale で開く
-
受信機を動かしている機械と、見る側の端末の両方に Tailscale を入れ、同じ tailnet に入れます。
-
受信機を動かしている機械で、次のコマンドを実行します。
tailscale serve --bg 35262 -
見る側の端末のブラウザーで、
https://<機械>.<tailnet>.ts.netを開きます。
止めるときは、次のコマンドを実行します。
tailscale serve --https=443 off
tailscale serve が届かせるのは、同じ tailnet の中だけです。tailscale funnel はインターネットへ公開するコマンドなので、web console には使わないでください。
コマンドの詳しい説明は、Tailscale の文書にあります。
SSH のポート転送で開く
受信機を動かしている機械に SSH で入れるなら、追加のソフトウェアは要りません。見る側の端末で、次のコマンドを実行します。
ssh -L 35262:127.0.0.1:35262 <機械>
接続したまま、見る側の端末のブラウザーで http://127.0.0.1:35262 を開きます。
ほかの名前で開く
web console を開けるアドレスの名前は、次の 3 種類に限っています。
localhost- IP アドレス
ts.netで終わる名前(Tailscale の名前)
限っているのは、ブラウザーで開いたほかの web ページが、利用者の知らないうちに web console へ要求を送るのを防ぐためです。自分で用意した名前(リバースプロキシに付けた名前など)で開くと、「forbidden」と表示されます。
ヘッドレス版では、起動の引数に --allow-host <名前> を足すと、その名前でも開けるようになります。引数は systemd の設定に足します。まず、現在の起動コマンドを確認します。
systemctl cat jrd-receiver
表示された設定のうち、最後の空でない ExecStart= 行をコピーします。--host、--port、ベータ版の --no-self-update など、既存の引数をすべて残してください。次のコマンドでエディターを開きます。
sudo systemctl edit jrd-receiver
[Service]、空の ExecStart=、コピーした ExecStart= 行の順に書き、コピーした行の末尾に --allow-host receiver.example.com を足します。receiver.example.com は、使う名前に置き換えます。たとえば、ベータ版を既定のアドレスで動かしている場合は、次の形になります。
[Service]
ExecStart=
ExecStart=/opt/jrd-receiver/jrd-receiverd --listen 127.0.0.1:35262 --state-dir /var/lib/jrd-receiver --no-self-update --allow-host receiver.example.com
そのあと、サービスを再起動します。
sudo systemctl restart jrd-receiver
この手動の起動設定がある間、インストーラーは更新前に停止します。再インストールするときは、手動の設定を控えたうえで、エラーに表示されたファイルの ExecStart 上書きを取り除いてください。インストール後に、新しい起動コマンドを確認して --allow-host を追加し直します。
リバースプロキシを挟むときは、プロキシが Host ヘッダーを書き換えずに転送するように設定します(nginx では proxy_set_header Host $host;)。書き換えたままだと、画面は開いても、操作と受信内容の表示がすべて「forbidden」になります。
ヘッドレス版で --host に指定したホスト名は、ここへ重ねて指定しなくても許可されます。デスクトップ版には、名前を足す設定がありません。
音声を聞く
ブラウザーは、利用者が操作するまで音を出しません。web console を開いたら、音声のボタンを一度押してください。
音量とミュートは、開いている画面ごとの設定です。ほかの画面には伝わりません。
複数の画面を同時に開く
手元のウィンドウと web console、または複数の web console を、同時に開けます。片方で設定を変えると、もう片方にも反映されます。
設定画面を編集している最中に、ほかの画面で設定が変わったときは、「ほかの画面で設定が変わりました」と出ます。読み直すかどうかを、そこで選べます。
web console でできないこと
| できないこと | 代わりの方法 |
|---|---|
| フォルダとファイルを選ぶダイアログ | 受信機を動かしている機械の上のパスを入力します |
| 記録したファイル(JSONL、WAV、IQ)の取り出し | 受信機を動かしている機械の上の出力先から取ります |
| デスクトップ版のアプリの更新 | 手元のウィンドウで行います。手順は更新にあります |