QNAP TS-464でJellyfinを動かす(Container Station編)

投稿者: | 8月 21, 2025

パッケージ版のJellyfinを作ってみたが、コンテナ版にした。理由は、パッケージ版は非公式パッケージで専用のディレクトリにファイルを作るのでバックアップとかが面倒。コンテナ版だとファイルを見えるところに作ってくれる、特にバックアップがしやすいし、必要なパッケージも入っている。さらに、バージョンアップもイメージのタグを変更して上げ直せばすぐ終わる。Watchtowerで自動化しているので、気がついたら上がっているはずけど。

コンテナって便利なんだけど、インフラ系の人からすると苦手かもしれない。理由は動かすアプリのことを考えないから。こういう「動かすアプリ」があるとぐっと理解が進むと思うんだが。

 

閑話休題

 

Container Stationでの設定は、以下。以下に注意をする。

  • パッケージ版から移行する場合は、事前にパッケージ版のJellyfinを止めておく。
  • PublishedServerUrl=http://<QNAPのURL>
  • 記載しているパスはQNAPのリアルパス (DockerのVolumeを利用しない主義なので)
    • 設定ファイルなど:例:/share/Share/docker/jellyfin/  (事前に作っておく)
    • Jellyfinに読み込ませるデータのフォルダ:例:/share/Media/
      • 複数登録するのもあり。

Container Stationで、アプリケーションを開き、以下のようなYamlを貼り付けて起動させる。入力したら、Validationをかけておくことを忘れずに。

services:
jellyfin:
  image: jellyfin/jellyfin:latest
  container_name: jellyfin
  network_mode: “host”
  devices:
    - /dev/dri:/dev/dri
  environment:
    - TZ=Asia/Tokyo
    - JELLYFIN_PublishedServerUrl=http://<QNAPのFQDNあるいはIPアドレス>
  volumes:
    - /share/Share/docker/jellyfin/config:/config
    - /share/Share/docker/jellyfin/cache:/cache
    - type: bind
      source: /share/Media/TVProgram
      target: /TVProgram
      read_only: true
    - type: bind
      source: /share/Media/Movie
      target: /Movie
      read_only: true
      restart: unless-stopped

 

しばらくしたら、Jellyfinが立ち上がるが、前にパッケージ版のJellyfinを動かしていた場合、ブラウザのサイトデータを削除しておく必要がある。設定の場所を毎回探すので、以下にキャプチャーをつけておく。(これをしないと、前の設定で接続をしようとしてしまう。また、この設定を探すのは毎回苦労する。)以下から、前のJellyfinが動いていたドメインあるいはFQDNのデータを削除する。

Safariの場合

設定のPrivacyタブー>Manage Website Data

Chromeの場合

設定ー>Privacy and securityー>site settingsー>view permissions and data stored across site

その後、http://<QNAPのFQDNあるいはIPアドレス(yamlで指定した文字列)>:8096へアクセスをする。

うまく動いたら、パッケージ版のjellyfinをアンインストールして

ls /share/CACHEDEV1_DATA/.qpkg/

jellyfinが削除されていることを確認する。

ハードウェアアクセラレーションを確認するためのvainfoはコンテナイメージに入っているので、以下のコマンドで確認をする。

docker ps
docker exec -it f116ec483768 /usr/lib/jellyfin-ffmpeg/vainfo

最後に、アクセラレーションの設定を適用して完了。

https://www.blog.slow-fire.net/2025/06/01/qnap-ts-464でjellyfinを動かす場合のハードウェアアクセラレー/

 

httpsでアクセスさせたい場合

どうやらhttpsで動かす場合は、リバースプロキシーが必要らしい。Jellyfinだけでも証明書の管理ができればhttpsでアクセスできそうなのだが、どういうわけだか不明だが、公式ドキュメントもリバースプロキシで作れと書いてある。手元の環境は、QNAPのDockerで、証明書の管理をしたくないので、リバースプロキシを使うことにした。

ちなみに、QNAP(Synologyも)リバースプロキシが付いているので、設定でリバースプロキシを設定する。

以下QNAPでの例

言うまでもないが、NASへのダッシュボードなどのアクセスは、https://<FQDN Name> で正しくアクセスができることが前提。(今のNASは、大抵DDNS名で証明書を配ってくれるが。)

 

この設定、何が便利かというと、NASの証明書をそのまま使ってくれる。ただし、この設定は、あくまでもフロントエンドのリバースプロキシがhttps(NASの証明書)で受けて、リバースプロキシーからJellyfinにはhttpでアクセスしている。(この機能は、NASでMinioを立ち上げるときとかもよく考えたら使える)

自分の環境の場合、外からアクセスする必要がないのでプラセボかもしれないが、手元の¥ブラウザからアクセスする場合、警告などでないから外からアクセスすることがなくてもhttpsにしておいたほうがいい。

コメントを残す