Installing MiniDLNA on TrueNAS SCALE
TrueNAS SCALE になると、iocage Jail じゃなくなるのでアプリのインストール・設定方法が変わります。
(TrueNAS CORE の場合は>TrueNAS 12.0-U7 に MiniDLNA をインストール)
TrueNAS CORE の時と同様、
TrueNAS SCALE の Apps のカタログ内には MiniDLNA はないようです。
(TrueNAS SCALE の Apps 一覧)
TrueNAS SCALE では
Docker イメージを利用できるらしいのですが、具体的に TrueNAS SCALE にインストールしている例を見かけられなかったので、 TrueNAS SCALE で Docker イメージを利用している例と、
別のOSへ Docker イメージで MiniDLNA を設定している例を参考にして設定してみました。
Docker イメージと、記述方法はこちらの設定を参考に行っています。
(調べたサイトで最も利用されていたのと、最近も更新されているようだったので)
https://github.com/vladgh/docker_base_images/tree/main/minidlna
Usage
Prefix any configuration directive of MiniDLNA with MINIDLNA_ and run your container:
Specify the user ID (UID) and group ID (GID):
docker run -d \
--net=host \
-v:/media \
-e PUID=1000 \
-e PGID=1000 \
-e MINIDLNA_MEDIA_DIR=/media \
-e MINIDLNA_FRIENDLY_NAME=MyMini \
vladgh/minidlna
(「\」はバックスラッシュで、実際には docker から1行で綴る意味かと。引数のない「vladgh/minidlna」が Docker リポジトリになるっぽい)
まずは事前準備。MiniDLNAがメディアフォルダとして参照する Dataset の Permission に
apps ユーザーと apps グループの Full Control のアクセス権を設定します。
Apps > Discover Apps
検索しても MiniDLNA はラインナップされていませんので、
Custom App
Install Custom App
で
Docker イメージに関する設定を行っていきます。
Application Name 適当に設定します。
minidlna とか
Image repository MiniDLNAのリポジトリを指定します。
vladgh/minidlna
Container Environment Variables
Add をクリックして項目を4つ追加して、上記の -e で設定されている項目をそれぞれ = の左右で指定していきます。
Environment Variable Name
MINIDLNA_MEDIA_DIR
Environment Variable Value
/media
Environment Variable Name
MINIDLNA_FRIENDLY_NAME
Environment Variable Value
MiniDLNA (ここは名前なので任意で)
同様に、 minidlna.conf で設定できるMiniDLNA の設定項目を「MINIDLNA_」つけて指定することができるらしい。けど、特にないので試してない。
http://manpages.ubuntu.com/manpages/raring/man5/minidlna.conf.5.html
のこりの2つの項目。メディアフォルダをスキャンするためのユーザーIDとグループIDを指定します。サンプルでは PUID PGID ともに 1000 となっていますが、
apps が 568 なので
Environment Variable Name
PUID
Environment Variable Value
568
Environment Variable Name
PGID
Environment Variable Value
568
としてみました。
他にも docker のコマンドラインで指定したい -e 項目があったら同様にここで指定できるはずです。
-e TZ=US/Central
タイムゾーンの指定。デフォルトは UTC らしい。
日本だと Asia/Tokyo として
-e TZ=Asia/Tokyo
と考えて設定するのかもしれないけどわざわざ設定する必要があるのかどうか不明。
-e MINIDLNA_NOTIFY_INTERVAL=30
メディアフォルダの再スキャンインターバルでデフォルトは895(秒なので約15分)らしいんだけど、ここ短くしたがる人は多い。けどデフォルトのままか、すぐにスキャンさせたいときは Shell でコマンド打つか、再起動すればとも思う。
Networking
■ Provide access to node network namespace for the workload
にチェック。たぶんホストのネットワークから参照できるようにするにはチェックしなければならないと思う。(--net=host 相当になるかと)
Storage
Add をクリックして、上で設定したメディアフォルダに割り当てる Dataset を指定します。
Host Path 親の TrueNAS SCALE の Dataset を指定します。
/mnt/tank/download
とか。
Name Path 上の設定で指定しているものに合わせます。
/media
□ Read Only
という項目があって、MiniDLNA は書き込みできる必要はないと思われるけど、あちこちで Read Only にすると不具合があることが書かれているのでわざわざチェックするべきではないと思います。
複数の Dataset を参照させる設定もできると思うけど今回は試していない。
あと、
キャッシュを下記に作成するみたいなので、
/minidlna/cache/files.db
親の TrueNAS SCALE 上にそれ用のデータセット作成して、この MiniDLNA の /minidlna/cache
にマウントしてやれば、Dockerを再実行したりしても永続化できたりするのかな。
あんまり大量にファイルおいてなければどっちでもいいか。
Portal Configuration
Web UI へのリンクを作成できるので設定しておく。(省略可)
■ Enable WebUI Portal
チェックして設定する。
Portal Name 表示されるリンク項目の名称なので任意
Web Portal
Protocol fot Portal HTTPでアクセスするので
HTTP Protocol
■ Use Node IP fot Portal IP/Domain
ホストのIPアドレスでアクセスするのでチェック
Port
8200 MiniDLNAのデフォルト
Install をクリックするとインストールが開始される。
初めての Apps の設定かどうかによっても待ち時間が違うかと思います。
画面が変わって、
Deploying
となっている間は待ちます。
Running となったら実行されました。
先ほど設定した、Web UI へのリンクがありますのでクリックしてみます。
サンプルとしておいてあったビデオファイルを1つ検出していて、
クライアントが2台表示されています。
MiniDLNA の Web UI は情報だけで何かできるわけではないので、
設定を省略してもいいかもしれません。
また、
Workloads
の右下の
View Logs のアイコンをクリックすると、
Choose pod
と表示されますが、そのまま
Choose
Pod Logs
としてログが表示されます。
monitor_inotify.c:223: warn: WARNING: Inotify max_user_watches [8192] is low or close to the number of used watches [8] and I do not have permission to increase this limit. Please do so manually by writing a higher value into /proc/sys/fs/inotify/max_user_watches.
と文句言われていますが、とりあえず未着手。
MiniDLNA version 1.3.3.
と表示されています。
Shellだと
minidlnad -V
Vは大文字。
この App が Running の状態で、
Windows のメディアプレイヤーとか、適当な DLNA クライアントで参照できるか確認してみてください。
その他のライブラリのところに、
設定した Friendly Name のサーバーが検出されれば再生できるかと思います。
(再生できない形式とか Windows メディアプレイヤーの使い方とかは省略)
他に言及されているのを見かけた Dockerfile のリポジトリ
https://github.com/GioF71/minidlna-docker
giof71/minidlna
https://github.com/geekduck/docker-minidlna
geekduck/minidlna
あとは、
https://hub.docker.com/
で「minidlna」で検索するといくつも見つかりますが、
結局
vladgh/minidlna
が最もダウンロードされているようです。
Android タブレットの VLC Media Player から見ると
TrueNAS CORE の Plugin では FreeBSD のアイコンだったのが、
TrueNAS SCALE の Apps では Linux のペンギンになってる。
(MiniDLNA の アイコンはハードコードされてて、専用のアイコンの設定もなく、設定とかで差し替えられないっぽいのが残念)