1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

JellyfinをSynology NASにDockerで構築する

Posted at

ファイルサーバーとしてしか使用していなかったSynology NAS DS220jに、docker-composeを使用してメディアサーバーであるJellyfinを構築しましたのでそのメモです。

前提条件

  • プロバイダの固定IP接続サービスを使用していること
  • 独自ドメインを使用していること
  • DSM ver7.2以上

Synology NASにdocker-composeをインストール

  1. NASに管理者権限のあるアカウントでログイン

  2. 「パッケージ センター」を開き、「Container Manager」をインストール
    スクリーンショット 2025-07-21 10.48.41.png

docker-composeを使用してJellyfinをインストール

  1. 「File Station」を開くと「docker」というフォルダができているので、そのフォルダの中にJellyfin用のフォルダを作成する(ここではjellyfinというフォルダを作成しています)
    スクリーンショット 2025-07-21 12.48.07.png

  2. 作成したフォルダ(上記例ではjellyfinフォルダ)内に、cacheconfigフォルダを作成する
    スクリーンショット 2025-07-21 12.50.02.png

  3. 「パッケージ センター」内にある「Container Manager」を開く

  4. 「プロジェクト」タブの「作成」をクリック
    スクリーンショット 2025-07-21 12.53.46.png

  5. 以下項目を入力し「次へ」を押下

    • プロジェクト名:適当な名前
    • パス:先ほど「1」で作成したJellyfin用のフォルダを指定
    • ソース:「docker-compose.ymlを作成」を指定し、以下を入力
      services:
         jellyfin:
           image: jellyfin/jellyfin
           container_name: jellyfin
           network_mode: 'host'
           volumes:
             - /volume1/docker/jellyfin/config:/config # 2で作成したフォルダパスを指定
             - /volume1/docker/jellyfin/cache:/cache # 2で作成したフォルダパスを指定
             - type: bind
               source: # 音楽が入っているフォルダパスを指定
               target: /media
           restart: 'always'
      
  6. Webポータル設定は、なにもチェックを入れずに「次へ」を押下
    スクリーンショット 2025-07-21 13.09.30.png

  7. 「要約」画面で「プロジェクトが作成されると、開始されます」にチェックを入れ、「完了」を押下
    スクリーンショット 2025-07-21 13.11.29.png

  8. コンテナが構築され、8096番ポートでJellyfinが起動する

SSLの設定

  1. ルーターのNAT設定で、80番ポートと443番ポートをNASのプライベートIPアドレスに向ける

  2. ドメイン設定で、Jellyfinのドメインを設定

  3. NASの「コントロール パネル」の「セキュリティ」を選択し、「証明書」タブを選択して「追加」を押下
    スクリーンショット 2025-07-21 13.17.08.png
    スクリーンショット 2025-07-21 13.17.50.png

  4. 「新しい証明書を追加してください」を選択し「次へ」を押下
    スクリーンショット 2025-07-21 13.19.31.png

  5. 説明欄に分かりやすい名前を入力し、「Let's Encrypt からの証明書をお受け取りください」を選択して「次へ」を入力
    スクリーンショット 2025-07-21 13.20.32.png

  6. 下記を入力し「完了」を押下

    • ドメイン名:2で設定したドメインを入力
    • 電子メール:メールアドレスを入力
    • サブジェクトの別名:何も入力しない
      スクリーンショット 2025-07-21 13.22.37.png
  7. 「3」の画面に「6」で入力したドメインの証明書が追加される

  8. 「3」の画面の「設定」を押下し、「6」で入力したドメイン欄の証明書を「synology」からドメイン名の証明書に変更する
    スクリーンショット 2025-07-21 13.26.22.png

リバースプロキシの設定

  1. NASの「コントロール パネル」の「ログインポータル」を選択し、「詳細設定」タブを選択して「リバース プロキシ」を押下
    スクリーンショット 2025-07-21 13.30.44.png

  2. 「作成」を押下
    スクリーンショット 2025-07-21 13.31.36.png

  3. 「全般」タブに下記を入力

    • プロキシ名を反転:分かりやすい名前(jellyfin 等)
    • Taget
      • プロトコル:「HTTPS」
      • ホスト名:「SSLの設定」の「2」で設定したドメイン名
      • ポート:443
      • 「HSTSを有効にする」はチェックしない
      • アクセス コントロール プロファイル:未構成
    • 送り先
    • プロトコル:「HTTP」
    • ホスト名:「localhost」
    • ポート:8096
      スクリーンショット 2025-07-21 13.36.31.png
  4. 「カスタム ヘッダー」タブに以下を入力し「保存」を押下
    (項目追加は「作成」ボタンを押下)

    ヘッダー名
    X-Content-Type-Options nosniff
    Permissions-Policy accelerometer=(), ambient-light-sensor=(), battery=(), bluetooth=(), camera=(), clipboard-read=(), display-capture=(), document-domain=(), encrypted-media=(), gamepad=(), geolocation=(), gyroscope=(), hid=(), idle-detection=(), interest-cohort=(), keyboard-map=(), local-fonts=(), magnetometer=(), microphone=(), payment=(), publickey-credentials-get=(), serial=(), sync-xhr=(), usb=(), xr-spatial-tracking=()
    Content-Security-Policy default-src https: data: blob: ; img-src 'self' https://* ; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' https://www.gstatic.com https://www.youtube.com blob:; worker-src 'self' blob:; connect-src 'self'; object-src 'none'; frame-ancestors 'self'; font-src 'self'

スクリーンショット 2025-07-21 13.41.41.png

設定完了後、ブラウザからドメインを指定してアクセスし、Jellyfinの画面が表示されたら完了!

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?