チュートリアル

概要

このチュートリアルでは、Sora に組み込まれている開発ツールを動かして、ひととおり使ってみるところまでを説明します。

チュートリアルの注意点

  • このチュートリアルでは、リバースプロキシとしての NGINX や HTTPS の知識を必要とします
  • Sora は TCP と UDP の両方を利用します
    • TCP はデフォルトであれば 3000 番と 5000 番を利用します
    • UDP はデフォルトであればエフェメラルポートの範囲を利用します
  • Sora のシグナリングは WebSocket over TLS 非対応のため、nginx をリバースプロキシとして利用して、 TLS 終端を行い Sora のシグナリングへ繋ぐ必要があります

Sora の展開

tar.gz で圧縮されていますので、展開して下さい。

$ tar xfz sora-<version>-<os>-<arch>.tar.gz

ライセンスファイルの配置

ライセンスファイルを etc/ において、cp コマンドを利用して license.json に変更して下さい。

起動

設定が終わったらサーバーを起動します。

$ sora-<version>/bin/sora daemon

停止

以下で停止できます。

$ sora-<version>/bin/sora stop

シグナリングへの HTTPS の適用

HTTPS (WebSocket over TLS を含む) の適用は必ず行ってください。HTTPS への接続以外はサポート対象外となります

ブラウザで WebRTC の機能の一つである getUserMedia を利用する場合は HTTPS が必須となります。 ただし、Sora 自体は HTTPS 非対応のため、Sora の前段にリバースプロキシとして NGINX を設置して TLS 終端を行ってください。

NGINX の location ディレクティブの設定については nginx を参考にして設定をお願いします。

証明書については Let's Encrypt - Free SSL/TLS Certificates の利用をおすすめします。

リバースプロキシとしての NGINX の役割:

// 開発者ツールの静的ファイルの場合
クライアント -> <HTTPS:443> -> NGINX -> <HTTP:5000> -> Sora

// シグナリングの場合
クライアント -> <WebSocket over TLS:443> -> NGINX -> <WebSocket:5000> -> Sora

開発者ツールを利用してみる

Sora では開発ツールを利用して、Sora の機能を試すことができます。まずはオンライン版の利用をお勧めします。

オンライン版を利用する

オンライン版の開発ツールは https://sora-devtools.shiguredo.app から利用することができます。 Sora のシグナリング URL を指定する必要があります。

Sora のシグナリング URL を signalingUrlCandidates に指定してください。

シグナリング URL は wss://sora.example.com/signaling のように wss:// で始まる WebSocket over TLS の URL を指定してください。

オンライン版を NGINX でリバースプロキシ経由で利用する

オンライン版の開発ツールに対してリバースプロキシを設定することで、Sora のシグナリング URL を指定せずに利用することができます。

NGINX の location / ディレクティブで https://sora-devtools.shiguredo.app へリバースプロキシしてください。

location / {
  proxy_http_version 1.1;
  proxy_pass https://sora-devtools.shiguredo.app;
  proxy_set_header Host sora-devtools.shiguredo.app;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header X-Forwarded-Proto $scheme;

  proxy_ssl_server_name on;
  proxy_ssl_name sora-devtools.shiguredo.app;
  proxy_ssl_protocols TLSv1.2 TLSv1.3;        
}

https://example.com/ のように NGINX のホスト名でアクセスしてください。

オフライン版を NGINX で利用する

開発ツールのオフライン版を NGINX でホストして利用することができます。

https://github.com/shiguredo/sora-devtools/releases/tag/ から Latest の sora-devtools-<version>.tar.gz をダウンロードして展開してください。

展開したディレクトリを NGINX の root ディレクティブに指定してください。

location / {
  root /path/to/sora-devtools-<version>;
  index index.html;
  try_files $uri $uri/ /index.html;
}

https://example.com/ のように NGINX のホスト名でアクセスしてください。

開発者ツールが動作するブラウザ一覧

以下の最新のブラウザで動作します。

  • Google Chrome
  • Mozilla Firefox
  • Apple Safari
  • Microsoft Edge

ただし一部の機能は特定のブラウザでのみ動作します。

動作確認

ビデオ会議システムなどで利用されるような双方向での配信機能です。 受信だけ、送信だけでの利用もできます。

connect を押して、その後、別のブラウザやタブで同じ URL を開いて、 connect を押して下さい。

追加でタブを開いて connect していけば参加者を増やせます。

開発ツールでは気軽にいろいろな設定を試せるようになっています。触ってみてください。

次のステップ

本番稼働に向けて で Sora の本番稼働向けの設定を行ってください。

Sora はいろいろな機能を持っていますので、一通りドキュメントをご確認下さい。 ドキュメントで不明な点がありましたら、お気軽にお問い合わせください。

トラブルシューティング

タイムアウトが起きてつながらない場合

Sora が利用する UDP のポートの範囲は通常 32768 から 60999 です。この範囲の通信を許可にしてみてください。

それでもうまく繫がらない場合

サーバーの IPv4 アドレスを ipv4_address に指定して、 ipv6false にしてみてください。

## https://sora-doc.shiguredo.jp/SORA_CONF#sora-conf-ipv4-address
ipv4_address = 192.0.2.10

よくある問題

ここでは利用しているドメインを仮に example.com としています。

  • https://example.com/ にアクセスできない
    • NGINX の設定が間違っている可能性があります。nginx の設定を見直して下さい
  • https://example.com/ にアクセスしても 404 になる
    • Sora の組み込みの開発者ツールが有効になっていない可能性があります
      • sora.conf の設定で開発者ツールが有効になっているか確認して下さい
      • http://example.com:5000/ にアクセスして開発者ツールが有効になっているかを確認して下さい
    • Sora が利用するポートを他のプロセスが利用していないかを確認してください
      • Sora が利用したいポートを他のプロセスが既に利用しているために、Sora が起動していない可能性があります

それでも繋がらない場合

お問い合わせ前に以下を確認してください

  • チュートリアル以外のことはやっていないかどうかを確認して下さい
  • ファイアウォールの設定をすべて無効にして確認してください
  • IPv6 アドレスを無効にして確認してください
  • Sora では基本的にロードバランサーを利用することはできませんので、ロードバランサーなしで確認してください

すべてを確認しても繋がらない場合はお問い合わせください。

その際に以下の情報を 必ず お送りください。

  • どんな環境でチュートリアルを実行しているか
  • Sora のバージョン
  • Sora の設定ファイルである sora.conf
  • log ディレクトリ以下すべてを tar.gz にて圧縮してお送りください
    • 容量が 1 メガバイトを超える場合は事前にご連絡ください。アップローダーをご提供します
  • 繋がらなかった開発者ツール
    • たとえば sendonly など
  • 繋がらなかったブラウザを利用している OS とバージョン
    • たとえば macOS Sonoma 14.5Windows 10 2004 など
  • 繋がらなかったブラウザの種類とバージョン
    • たとえば Chrome 125.0.6422.142 など

それ以外にも可能な限り、こちらがサポートをするために必要そうな情報をお送りください。