メインコンテンツまでスキップ

ブラウザーからの確認と操作

Highway Radio Receiver の画面は、受信機を動かしている機械とは別の端末(スマートフォンや別の PC)のブラウザーでも開けます。ブラウザーで開くこの画面を web console と呼びます。web console では、受信内容の確認、音声の再生、設定の変更ができます。画面の中身は、デスクトップ版のメイン画面と設定画面と同じです。

有効にする​

版有効にする方法
デスクトップ版(macOS と Windows)設定画面の「ブラウザからの操作」欄で、「ブラウザからの操作を有効にする」をオンにします。既定のポートは 35263 です
ヘッドレス版(Linux)最初から有効です。既定のポートは 35263 です

デスクトップ版では、有効にすると、開く URL が設定画面に出ます。指定したポートが使えないときは、設定画面にエラーが出て、無効のままになります。

デスクトップ版では、同じ欄の「ホスト」で、待ち受けるホストを変えられます。既定は 127.0.0.1,localhost で、この機械の中からだけ開けます。IP アドレスかホスト名を、カンマで区切って複数指定できます。0.0.0.0 にすると、この機械のすべてのアドレスで待ち受け、同じネットワークの端末から http://<この機械の IP アドレス>:35263 で開けます。LAN へ出すときは、同じネットワークの誰でも開けるので、下の Basic 認証を必ず設定してください。

デスクトップ版では、同じ欄で「ユーザー名」と「パスワード」を入れて「認証を保存」を押すと、web console に Basic 認証を掛けられます。パスワードは、アプリの設定フォルダにハッシュで保存され、画面には再表示されません。パスワードを空にして保存すると、認証を外します。ただし HTTP は暗号化されないので、パスワードを掛けても、Tailscale か SSH のポート転送と組み合わせて使ってください。

TCP で送る機能(TCP で送る)の送り先ポートの既定も 35263 です。web console を有効にした機械で、同じ機械へ TCP で送るときは、送り先に別のポートを選んでください。

届く範囲と保護​

web console は、既定では受信機を動かしている機械の中(127.0.0.1)だけで待ち受けます。デスクトップ版では設定画面の「ホスト」で、ヘッドレス版では起動の引数 --host で待ち受けるホストを指定して、LAN 内へ出すこともできます(ヘッドレス版の導入)。ほかの端末からは、そのままでは届きません。

ヘッドレス版では、起動の引数 --auth ユーザー名:パスワード(または環境変数 HWR_WEB_AUTH)で、web console に Basic 認証を掛けられます。ps などでほかの人に引数を見られたくないときは、環境変数のほうを使います。ただし、web console は HTTP で動くので、パスワードも受信内容も暗号化されずに流れます。パスワードを掛けた場合も、Tailscale か SSH のポート転送と組み合わせて、通り道を暗号化してください。

別の端末から届かせる手段は、利用者が用意します。このページでは、Tailscale と SSH のポート転送の 2 つを例に挙げます。

届かせる範囲は、信頼できる端末だけにしてください。web console を開けた人は、設定の変更とライセンスの認証の解除を含む、すべての操作ができるからです。ルーターのポート開放で、インターネットへ直接出すことは避けてください。

Tailscale で開く​

  1. 受信機を動かしている機械と、見る側の端末の両方に Tailscale を入れ、同じ tailnet に入れます。

  2. 受信機を動かしている機械で、次のコマンドを実行します。

    tailscale serve --bg 35263
  3. 見る側の端末のブラウザーで、https://<機械>.<tailnet>.ts.net を開きます。

止めるときは、次のコマンドを実行します。

tailscale serve --https=443 off

tailscale serve が届かせるのは、同じ tailnet の中だけです。tailscale funnel はインターネットへ公開するコマンドなので、web console には使わないでください。

コマンドの詳しい説明は、Tailscale の文書にあります。

SSH のポート転送で開く​

受信機を動かしている機械に SSH で入れるなら、追加のソフトウェアは要りません。見る側の端末で、次のコマンドを実行します。

ssh -L 35263:127.0.0.1:35263 <機械>

接続したまま、見る側の端末のブラウザーで http://127.0.0.1:35263 を開きます。

ほかの名前で開く​

web console を開けるアドレスの名前は、次の 3 種類に限っています。

  • localhost
  • IP アドレス
  • ts.net で終わる名前(Tailscale の名前)

限っているのは、ブラウザーで開いたほかの web ページが、利用者の知らないうちに web console へ要求を送るのを防ぐためです。自分で用意した名前(リバースプロキシに付けた名前など)で開くと、「forbidden」と表示されます。

ヘッドレス版では、起動の引数に --allow-host <名前> を足すと、その名前でも開けるようになります。--host など、すでに付けている引数は残したまま足し、起動し直します。たとえば、展開したフォルダで既定のアドレスのまま待ち受けている場合は、次の形になります。

./hwr-receiverd --allow-host receiver.example.com

receiver.example.com は、使う名前に置き換えます。

リバースプロキシを挟むときは、プロキシが Host ヘッダーを書き換えずに転送するように設定します(nginx では proxy_set_header Host $host;)。書き換えたままだと、画面は開いても、操作と受信内容の表示がすべて「forbidden」になります。

ヘッドレス版で --host に指定したホスト名は、ここへ重ねて指定しなくても許可されます。デスクトップ版には、名前を足す設定がありません。

音声を聞く​

ブラウザーは、利用者が操作するまで音を出しません。web console を開いたら、音声のボタンを一度押してください。

音量とミュートは、開いている画面ごとの設定です。ほかの画面には伝わりません。

複数の画面を同時に開く​

手元のウィンドウと web console、または複数の web console を、同時に開けます。片方で設定を変えると、もう片方にも反映されます。

設定画面を編集している最中に、ほかの画面で設定が変わったときは、「ほかの画面で設定が変わりました」と出ます。読み直すかどうかを、そこで選べます。

web console でできないこと​

できないこと代わりの方法
フォルダとファイルを選ぶダイアログ受信機を動かしている機械の上のパスを入力します
記録したファイル(JSONL、WAV、IQ)の取り出し受信機を動かしている機械の上の出力先から取ります
デスクトップ版のアプリの更新手元のウィンドウで行います。手順は更新にあります