段階的に構築進める想定なのでちょっとずつメモ増やしていく予定
Navidrome
www.navidrome.org
SubsonicAPI対応の音楽ストリーミングサーバ。
同種のソフトを比較しているところでサーバのリソース消費がかなり少ないという評価だったので選択。
yamanekovillage.com
最初のファイルスキャン中は結構激しく動いている感じだったけどその後はおとなしいので、録画サーバからほぼ単純NASになってリソースがあまり気味のサーバで動かすことにした。
スマホのストレージを節約しつつ大量の音楽を聴けるようにしようとするとSpotifyとか使うかセフルホストのミュージックサーバ立てるかなんだけど、セルフホストのミュージックサーバてててみることにした。
ブラウザから再生するときもリプレイゲインを有効に出来るので良い。
リプレイゲインが有効なプレーヤーが必須なので個人的にはこの機能がかなり大きい。
スマホからの再生に関してはこれまでPowerAmpを使っていたんだけど、そのままでは連係に使えなさそうなのでクライアントはSymphoniumあたりを検討中。
外からの接続に関してはCloudflare Tunnel経由を想定しているけどうまく連係出来るかな?
last.fmとの連係
last.fmやListenBrainzとの連係も可能。
last.fmと連携する場合はAPIキーを発行して有効にする必要がある。
www.navidrome.org
dockerで立てる場合は
ND_LASTFM_ENABLED
ND_LASTFM_APIKEY
ND_LASTFM_SECRET
を指定する必要がある。
APIKEYとSECRETはlast.fmで登録したら発行される。
指定してNavidromeの管理者から個人設定で「Last.fmへscrobbleする」が有効になっているので、これをONにしてlast.fmの接続確認が出るのでOKすれば完了。
last.fmの設定→Applicationsに登録した名称のアプリケーションがConnected Applicationsに登録されていればOK
各種Configはここを確認
www.navidrome.org
last.fmのAPI Keyの詳細、あとから見たい場合はここから見られるみたい
https://www.last.fm/api/accounts
外部アクセス
家の外からのアクセスについてはCloudflare Tunnel経由でAccess認証通してつながるようにしたい。
ということでサクッとnavidrome.ドメイン名という感じのサブドメイン定義してAccess設定をして、Tunnelに先程のサブドメインとローカルのNavidromeアドレスを割り当てて公開。
前やってしまったけど、Access設定する前にTunnelで割り当ててしまうとAccess設定するまでアクセスし放題になるので要注意。
※ Cloudflare Tunnel経由でSymphoniumでアクセスしようとするとうまくいかない
どうもバグっぽいことがフォーラムに記載があるけどどうなんだろ
SymphoniumのCloudflare Tunnelとの連係について
Symphoniumのメディアプロバイダ設定でSubsonicのプロキシ認証設定にカスタムヘッダのCF-Access-Client-Id、CF-Access-Client-Secretを設定する必要がある。
これはCloudflare Zero Trust、というかCloudflare Accessでサービストークンを発行して、そのクライアントID、クライアントシークレットを設定する形になる。
設定順としては
サービストークンの発行(サービス資格情報からサービストークンを作成)
Accessのアプリケーション設定でアクセスポリシーの先頭に新規ポリシーを追加(Service Auth設定でポリシーを作成して、先程作ったService Tokenをルールに設定)
これを行ったうえで、symphoniumのプロキシ認証でカスタムヘッダにCF-Access-Client-Id、CF-Access-Client-Secretを指定。値はCloudflare Accessでトークン発行したときの値を設定
こんな感じ
カスタムヘッダーの設定
これで外からSymphoniumでアクセス出来た。
課題としては屋内からでもTunnel経由になってしまうのでLAN内で完結しなくなること。
そろそろちゃんと家庭内DNS整備してフォールバックするような環境が必要か?
→ 「優先する接続」をローカルのIPアドレスに、予備の接続をパブリックなドメイン接続に設定しておけば良さそうなのでスマホはそういう設定にしようかと思っている。今のところ家の中のタブレットだけ設定しているから影響がわからん