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 での配信になるので、

コチラのガイドに従って OBSrtmp://localhost:1935/live を指定してやれば良い。ストリームキーについては初期値はパスワードと同じ abc123 を設定する。

OBS で配信を開始すると http://localhost:8080/ で配信が閲覧できるようになる。

トンネリングサービスを利用してローカルホストを全世界に公開する

昔だったら「自宅サーバの公開」として、ルータのポート開放を行ったりダイナミック DNS を設定したりして自鯖をインターネットに公開していたが、最近はトンネリングサービスを利用することが多いようだ。

中でも Serveo は一時閉鎖を乗り越えてサービスが再開されており、無料で任意のサブドメインを指定できるため、オススメだ。

Serveo の設定手順に入る前に、一応他の類似サービスを紹介しておく。

↑ コチラは Serveo 同様にインストール不要、ssh コマンドのみで実行できる。任意のサブドメインを指定するには月額9ドルの有料プランに入る必要があるが、自分の独自ドメインに割り当てるサービスもある。

以下はエージェントのインストールが必要なタイプだが、いずれも無料で使える。

最後の 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 設定もすれば自分のドメインにも割当可能なので、無料で運営し続けてほしいサービスである。