OwnCast でストリーミング配信サイトをセルフホストして Serveo で公開してみた
昨日は Restreamer というツールを使ってストリーミング配信サイトをセルフホストしてみたが、このツールはどちらかというと「他の配信サービスに再配信するためのソフト」であり、例えばコメント機能などは有していないツールだった。
今回用いる OwnCast は、Restreamer と同様にストリーミング配信がセルフホストでき、かつコメント欄も用意されているので、ちょっとした YouTube Live みたいなサイトを自分で構築できる。
今回はさらに、前回の記事で説明しなかった Serveo によるトンネリングでの世界公開も説明する。
OwnCast を準備する
今回は Docker を起動した上で、WSL 上でコンテナを立てる。Windows GitBash 上で立てるとボリュームのパス名が狂ってしまいデータ永続化ができなかったため。
公式の上のガイドにあるとおり、
$ docker run -v `pwd`/data:/app/data -p 8080:8080 -p 1935:1935 -it owncast/owncast:latest
このコマンド一発で OwnCast のサイトが立ち上がる。
http://localhost:8080/admin
にアクセスすると BASIC 認証がかかっているので、
↑ コチラのガイドにもあるとおり、ユーザ名 admin
、初期パスワード abc123
で管理画面にログインする。
ログインできたら、このウェブ画面内で全ての設定を行える。パスワードを変更したり、閲覧者数やコメントの確認、サイトの掲載内容などを調整できる。
OwnCast の場合も、RTMP での配信になるので、
コチラのガイドに従って OBS に rtmp://localhost:1935/live
を指定してやれば良い。ストリームキーについては初期値はパスワードと同じ abc123
を設定する。
OBS で配信を開始すると http://localhost:8080/
で配信が閲覧できるようになる。
トンネリングサービスを利用してローカルホストを全世界に公開する
昔だったら「自宅サーバの公開」として、ルータのポート開放を行ったりダイナミック DNS を設定したりして自鯖をインターネットに公開していたが、最近はトンネリングサービスを利用することが多いようだ。
中でも Serveo は一時閉鎖を乗り越えてサービスが再開されており、無料で任意のサブドメインを指定できるため、オススメだ。
Serveo の設定手順に入る前に、一応他の類似サービスを紹介しておく。
↑ コチラは Serveo 同様にインストール不要、ssh
コマンドのみで実行できる。任意のサブドメインを指定するには月額9ドルの有料プランに入る必要があるが、自分の独自ドメインに割り当てるサービスもある。
以下はエージェントのインストールが必要なタイプだが、いずれも無料で使える。
- ngrok | API Gateway, IoT Device Gateway, Secure Tunnels for Containers, Apps & APIs
- この手のトンネリングサービスの先駆け。任意のドメインを指定するには月額8ドルの有料サービスとなる
- localtunnel/localtunnel: expose yourself
- Home | Loophole
- Tunnel In - Single place to manage your network tunnels
- Localtonet | Localhost to Internet
- Home - zrok
最後の Zrok に関しては、ngrok 風なサービスであり、コレ自体をセルフホストできるオープンソースツールである。どうも Caddy を併用してサブドメインにあたる部分のワイルドカード証明書を発行するようである。
Serveo で任意のカスタムドメインを指定して localhost:8080
を公開する
というワケで Serveo の説明に入る。任意の文字列でカスタムドメインを作るため、まずは WSL 上で $ ssh-keygen
コマンドを使って鍵ペアを作る。
$ ssh-keygen -f serveo
続いて以下のコマンドで SSH リモートフォワードのトンネルを作ってやる。example
部分を任意の文字列に変えてやれば OK。
$ ssh -R example:80:localhost:8080 -i ~/.ssh/serveo serveo.net
Forwarding HTTP traffic from https://example.serveo.net
コレで、http://localhost:8080/
と同じモノが https://example.serveo.net/
でアクセスできるようになった。つまりは https://example.serveo.net/
を友人に教えてあげれば、自分のマシンで動いている OwnCast のサイトにアクセスしてもらえるというワケだ。
以上
OwnCast はそれ自体にコメント投稿機能がついているため、YouTube Live 的な使い方が簡単に出来る。環境を汚さず Docker コンテナとして起動できるのも便利なところだ。なお、配信遅延はだいたい1分くらいあるようなのでその点は YouTube Live なんかの低遅延配信に劣るが、よほどのことがなければ1分程度の配信遅延なら問題ないだろう。
Serveo はインストール不要かつ、無料で任意のサブドメインを発行できるところが素晴らしい。DNS 設定もすれば自分のドメインにも割当可能なので、無料で運営し続けてほしいサービスである。