ファイルサーバーとしてしか使用していなかったSynology NAS DS220jに、docker-composeを使用してメディアサーバーであるJellyfinを構築しましたのでそのメモです。
前提条件
- プロバイダの固定IP接続サービスを使用していること
- 独自ドメインを使用していること
- DSM ver7.2以上
Synology NASにdocker-composeをインストール
docker-composeを使用してJellyfinをインストール
-
「File Station」を開くと「docker」というフォルダができているので、そのフォルダの中にJellyfin用のフォルダを作成する(ここでは
jellyfin
というフォルダを作成しています)
-
「パッケージ センター」内にある「Container Manager」を開く
-
以下項目を入力し「次へ」を押下
- プロジェクト名:適当な名前
- パス:先ほど「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'
-
コンテナが構築され、8096番ポートでJellyfinが起動する
SSLの設定
-
ルーターのNAT設定で、80番ポートと443番ポートをNASのプライベートIPアドレスに向ける
-
ドメイン設定で、Jellyfinのドメインを設定
-
説明欄に分かりやすい名前を入力し、「Let's Encrypt からの証明書をお受け取りください」を選択して「次へ」を入力
-
下記を入力し「完了」を押下
-
「3」の画面に「6」で入力したドメインの証明書が追加される
-
「3」の画面の「設定」を押下し、「6」で入力したドメイン欄の証明書を「synology」からドメイン名の証明書に変更する
リバースプロキシの設定
-
「全般」タブに下記を入力
-
「カスタム ヘッダー」タブに以下を入力し「保存」を押下
(項目追加は「作成」ボタンを押下)ヘッダー名 値 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'
設定完了後、ブラウザからドメインを指定してアクセスし、Jellyfinの画面が表示されたら完了!