- Jellyfinは、外部サービスに頼ることなくマルチメディアライブラリを管理できる、無料のオープンソース代替ツールです。
- Dockerを使用することで、サーバーのインストールとアップデートが容易になり、アプリケーションをメインのオペレーティングシステムから分離できます。
- IntelまたはNVIDIAのGPUを使用したハードウェアアクセラレーションは、4Kビデオのトランスコーディング中にCPUが過負荷になるのを防ぐために不可欠です。
- セキュリティとリモートアクセスを最適化するには、Caddyのようなリバースプロキシを使用して暗号化されたHTTPS接続を有効にします。

Dockerを使用してJellyfinをインストールする 互換性のあるコンピューター、ホームサーバー、またはNASを、映画、テレビ番組、音楽、写真などを再生するためのプライベートプラットフォームに変えることができます。ファイルはすべてユーザーの管理下にあり、テレビ、携帯電話、ウェブブラウザ、その他の互換性のあるデバイスからアクセスできます。
DockerはJellyfinとその依存関係をコンテナ内に保持するため、インストール、メンテナンス、およびアップデートが簡素化されます。ただし、設定、キャッシュ、およびメタデータは別のコンテナに保存する必要があります。 持続的なボリューム コンテナが再作成されたときにそれらが消えないようにするためです。
このガイドでは Docker Compose を使用した Ubuntu サーバー そして、公式のJellyfinイメージを使用します。この手順は他のLinuxディストリビューションにも適用できますが、インストールコマンドや権限管理は異なる場合があります。
DockerでJellyfinをインストールするために必要なもの
始める前に、以下の部品が必要になります。
- 互換性のあるLinuxディストリビューションがインストールされたサーバーまたはコンピューター。
- Docker EngineとDocker Composeプラグイン。
- サーバー用の固定IPアドレス、またはDHCP予約。
- 設定、キャッシュ、および一時的なトランスコーディングのための十分な容量。
- マルチメディアファイルが保存されているフォルダへの読み取りアクセス権。
- 安定したネットワーク接続(イーサネット接続が望ましい)が必要です。
コンテナ化されたインストールは公式には Linux 向けです。Docker Desktop では Windows や macOS でコンテナを実行できますが、Jellyfin は一部の機能、特に ハードウェアアクセラレーションによるトランスコーディングそれらのシステムでは正しく動作しない可能性があります。
Jellyfinサーバーにはどのようなハードウェアが必要ですか?
要件はライブラリのサイズよりも再生タイプに依存します。クライアントデバイスがファイルのフォーマット、コーデック、オーディオ、字幕、ビットレートをサポートしている場合、Jellyfin は ダイレクト再生その場合、サーバーはビデオ処理をほとんど行わず、控えめな機器でも動作可能です。
Jellyfinがコンテンツをリアルタイムで変換する必要がある場合、処理負荷は増加します。これは、互換性のないコーデック、埋め込みが必要な字幕、過剰なビットレート、またはHDRからSDRへの変換が必要な場合などに発生します。そのため、すべてのユーザーに適した単一のコア数や十分なメモリ容量は存在しません。
複数の同時トランスコーディング処理には、Quick Syncをサポートする統合型Intel GPU、NVENCをサポートするNVIDIA GPU、または特定のAMDモデルを使用することをお勧めします。また、アップロード帯域幅も考慮する必要があります。 自宅以外からJellyfinにアクセスする.
まだハードウェアとストレージを選択中の場合は、専用コンピュータ、ミニPC、または ホームNAS.
UbuntuサーバーにDocker Engineをインストールする方法

まず、システムパッケージを更新してください。
sudo apt update
sudo apt upgrade -y
必要なツールをインストールし、公式のDockerキーを追加してください。
sudo apt install -y ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
-o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
次に、公式リポジトリを設定します。
sudo tee /etc/apt/sources.list.d/docker.sources > /dev/null <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF
Docker EngineとComposeプラグインをインストールしてください。
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io \
docker-buildx-plugin docker-compose-plugin
両方のコンポーネントが利用可能であることを確認してください。
sudo docker run --rm hello-world
sudo docker compose version
必要に応じて、ユーザーをグループに追加できます。 docker コマンドを実行するには sudo:
sudo usermod -aG docker "$USER"
変更を適用するには、ログアウトして再度ログインしてください。 dockerグループに所属すると、管理者と同等の権限が付与されます。 システムについて。信頼できないユーザーは追加しないでください。
永続フォルダを準備する方法
構成ファイル、設定ファイル、キャッシュファイル専用のフォルダを作成します。
sudo mkdir -p /opt/jellyfin/config
sudo mkdir -p /opt/jellyfin/cache
sudo chown -R "$(id -u)":"$(id -g)" /opt/jellyfin
cd /opt/jellyfin
メディアフォルダは別のドライブに配置できます。以下はシンプルな構造です。
/srv/media/
├── peliculas/
├── series/
└── musica/
これらのルートの使用は必須ではありません。重要なのは、 ホストサーバー上の既存のパス そして、ジェリーフィンが後に容器の中で目にすることになる道筋。
Jellyfinを実行するユーザーのUIDとGIDを取得します。
id -u
id -g
というファイルを作成します .env 内で /opt/jellyfin そして、取得した値を保存します。
JELLYFIN_UID=1000
JELLYFIN_GID=1000
置き換え 1000 システムの実際の値に基づいて判断してください。このユーザーは、すべてのマルチメディアディレクトリを読み取り、フォルダに書き込むことができる必要があります。 config y cache.
JellyfinのDocker Composeファイルの設定方法
ファイルを作成する /opt/jellyfin/docker-compose.yml この構成では:
services:
jellyfin:
image: jellyfin/jellyfin:latest
container_name: jellyfin
user: "${JELLYFIN_UID}:${JELLYFIN_GID}"
ports:
- "8096:8096/tcp"
- "7359:7359/udp"
volumes:
- type: bind
source: ./config
target: /config
- type: bind
source: ./cache
target: /cache
- type: bind
source: /srv/media/peliculas
target: /media/peliculas
read_only: true
- type: bind
source: /srv/media/series
target: /media/series
read_only: true
- type: bind
source: /srv/media/musica
target: /media/musica
read_only: true
restart: unless-stopped
港 8096/TCP ウェブインターフェースへのアクセスを提供します。ポート 7359/UDP これはローカルネットワーク内での自動検出に使用され、この機能が不要な場合は削除できます。
マルチメディアファイルは次のようにマウントされます 読み取り専用これにより、意図しない変更のリスクは軽減されますが、Jellyfin がメディアと一緒に NFO ファイル、画像、またはその他のデータを書き込むこともできなくなります。これらの機能を使用したい場合は、 read_only: true 必要なフォルダのみに保存する。
サービスを開始する前に構文を確認してください。
docker compose config
コマンドにエラーが表示されない場合は、イメージをダウンロードしてコンテナを起動してください。
docker compose pull
docker compose up -d
ステータスを確認し、記録を表示する:
docker compose ps
docker compose logs -f jellyfin
プレス Ctrl+C コンテナを停止せずにログビューを終了する。
初期設定を完了する方法
ネットワーク上の任意のコンピュータからブラウザを開き、以下を入力してください。
http://IP_DEL_SERVIDOR:8096
初期設定ウィザードでは、言語の選択、管理者アカウントの作成、ライブラリの追加を行うことができます。強力なパスワードを設定し、このアカウントは管理作業専用にしてください。
メディアフォルダを追加する場合は、 内部コンテナルート:
/media/peliculas/media/series/media/musica
立入禁止 /srv/media/peliculasそのパスはホストシステム上にのみ存在するため、コンテナ内では、 /media/peliculas.
コンテンツの種類ごとに、特定のライブラリタイプを選択してください。映画、テレビ番組、音楽を同じライブラリに混在させないようにしてください。名前、メタデータプロバイダ、フォルダ構造の設定が必要な場合は、設定方法を参照してください。 Jellyfinで映画やテレビ番組を追加して整理する.
Intel Quick Syncアクセラレーションを有効にする方法
互換性のあるIntelシステムでは、まずレンダリングデバイスが存在することを確認してください。
ls -l /dev/dri/
通常は次のように表示されます /dev/dri/renderD128グループ識別子を取得します render:
getent group render | cut -d: -f3
結果をファイルに追加する .env:
JELLYFIN_RENDER_GID=122
価値 122 これは単なる例です。次に、これらの行をサービスに追加してください。 jellyfin Composeファイルより:
group_add:
- "${JELLYFIN_RENDER_GID}"
devices:
- /dev/dri/renderD128:/dev/dri/renderD128
コンテナを再作成し、JellyfinがGPUを検出できることを確認してください。
docker compose up -d
docker exec -it jellyfin /usr/lib/jellyfin-ffmpeg/vainfo
入力 コントロールパネル > 再生 > トランスコーディングIntel Quick SyncまたはVA-APIを選択し、お使いのハードウェアと互換性のあるコーデックのみを有効にしてください。
デバイスをコンテナに追加するだけでは、自動的にアクセラレーションが有効になるわけではありません。トランスコーディングが必要なファイルを再生し、FFmpegのログを確認してGPUが正常に動作していることを確認することをお勧めします。
NVIDIA GPUの使い方
公式のJellyfinイメージには、NVIDIA独自のドライバーは含まれていません。ホストマシンにドライバーとNVIDIAドライバーの両方をインストールする必要があります。 NVIDIAコンテナツールキット.
次に、Jellyfinサービスに以下を追加します。
runtime: nvidia
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
コンテナを再作成し、カードが表示されていることを確認してください。
docker compose up -d
docker exec -it jellyfin nvidia-smi
最後に選択 NVENC トランスコーディング設定において、この設定をIntelの設定と組み合わせないでください。ただし、使用したいデバイスが明確に分かっている場合はこの限りではありません。
NASに保存されたライブラリの設定方法
ファイルがNASまたはSambaリソース上にある場合、最も安定した方法は、まずUbuntuでネットワークリソースをマウントし、次にバインドマウントを使用してそのパスをコンテナに渡すことです。
CIFSブラケットを取り付けて、取り付けポイントを作成します。
sudo apt install -y cifs-utils
sudo mkdir -p /mnt/media
NAS 認証情報を管理者のみがアクセスできるファイルに保存し、 /etc/fstab 再起動後もマウント状態を維持するため、以下の手順を実行してください。次に、Compose ファイルにパスを追加します。
- type: bind
source: /mnt/media
target: /media/nas
read_only: true
Jellyfinがフォルダを認識しているにもかかわらず空に見える場合は、リソースのアクセス許可、マウントに使用されているUIDとGID、およびすべての親ディレクトリの実行権限を確認してください。この設定の詳細については、ガイドを参照してください。 家庭用NASのストレージ.
自宅以外からJellyfinにアクセスする方法
ポート8096をインターネットに直接公開しないでくださいJellyfinのドキュメントでは、VPNを使用するか、サーバーの前にHTTPS対応のリバースプロキシを設置することを推奨しています。
TailscaleのようなVPNを使用すれば、Jellyfinを直接公開することなくプライベートネットワークにアクセスできます。また、リバースプロキシとしてCaddy、Nginx、またはTraefikを使用することも可能です。
Caddy は TLS 証明書を自動的に取得および更新できますが、通常はドメインがパブリック IP アドレスを指し、ポート 80 と 443 がサーバーに到達できることが必要です。したがって、 リバースプロキシは必ずしもポートを開放せずにアクセスできることを意味するものではありません。.
従来の公衆への露出を避けたい場合は、 自宅の窓を開けずに、家の外からJellyfinにアクセスできます。.
シングルサインオンでユーザーを一元管理するには、 Jellyfinで本物のつながりを。まず最初に Dockerを使用してAuthentikをインストールします。 グループと権限を慎重に設定してください。
Dockerを使用してJellyfinをアップデートする方法
更新する前に、バックアップを作成してください。 コントロールパネル > バックアップJellyfinの最新バージョンでは、サーバーが稼働中でもコピーを生成できますが、コンテンツを再生しているユーザーやアクティブなスキャンがないときに生成するのが最適です。
次に、イメージを更新してコンテナを再作成します。
cd /opt/jellyfin
docker compose pull
docker compose up -d
アップデート後にログを確認してください。
docker compose logs --tail=100 jellyfin
永続データはフォルダ内に残ります config y cacheしかし、一部のバージョンではデータベースにマイグレーションを適用し、 クラゲには分解機構がない以前のバージョンに戻す必要がある場合は、互換性のあるバックアップを復元する必要があります。
DockerでJellyfinをインストールする際によくある間違い
コンテナが繰り返し再起動します
実行する docker compose logs jellyfin フォルダのアクセス許可を確認してください config y cacheUIDとGIDは以下のように定義されています .env 彼らは書面による許可を得なければならない。
図書館はがらんとしているようだ。
ホストパスが存在すること、ボリュームが正しくマウントされていること、コンテナユーザーがすべてのディレクトリを参照および読み取ることができることを確認します。Jellyfin 内では、次のような内部パスを選択する必要があります。 /media/peliculas.
ファイルのスキャン時にアクセスが拒否されました
権限を適用することで問題を解決しようとしないでください。 777所有者、グループ、読み取り権限、実行権限を確認してください。NASを使用している場合は、リソースのマウントに使用されている設定も確認してください。
ポート8096を開くことができません
別のプロセスがそのポートを使用している可能性があります。以下の方法で確認してください。
sudo ss -ltnp | grep 8096
負荷が高い場合は、該当するサービスを停止するか、マッピング内の左側のポートを変更するなどしてください。 8097:8096.
GPUはホストには表示されるが、Jellyfinには表示されない。
Intelでデバイスを確認してください。 /dev/dri/renderD128 グループ識別子 renderNVIDIA では、ドライバー、NVIDIA Container Toolkit、および出力を確認してください。 docker exec -it jellyfin nvidia-smi.
ビデオはまだCPUを使用しています
GPUが認識されているからといって、すべてのフォーマットが高速化されるとは限りません。サポートされているコーデック、トランスコーディング設定、FFmpegレジスタを確認してください。字幕やフィルターによっては、CPUが使用される場合もあります。
Jellyfinは機能しますが、デバイスに自動的に表示されるわけではありません。
ポートを確認してください 7359/UDP ローカルネットワーク上で公開され、許可されている必要があります。DLNAが必要な場合は、公式ドキュメントによると、ネットワークモードを使用する必要がある場合があります。 host.
Docker Composeを使用してJellyfinをインストールする これにより、メディアサーバーを隔離し、管理を簡素化できますが、最終的な信頼性は使用するボリューム、権限、およびパスに依存します。コンテナが起動したら、ライブラリを追加し、ユーザーを作成し、ハードウェアに適したトランスコーディングを有効にできます。
自宅ネットワーク外にサービスを公開する前に、HTTPSまたはVPNを設定し、設定フォルダのバックアップを作成してください。こうすることで、ユーザー情報、メタデータ、再生履歴を失うことなくサーバーを更新できます。
私はテクノロジー愛好家であり、その「オタク」の興味を職業に変えています。私は 10 年以上、純粋な好奇心から最先端のテクノロジーを使用し、あらゆる種類のプログラムをいじくり回してきました。現在はコンピューター技術とビデオゲームを専門にしています。これは、私が 5 年以上、テクノロジーやビデオ ゲームに関するさまざまな Web サイトに執筆し、誰にでも理解できる言語で必要な情報を提供することを目的とした記事を作成しているためです。
ご質問がございましたら、私の知識は Windows オペレーティング システムから携帯電話用の Android に関連するあらゆるものまで多岐にわたります。そして、私はあなたに対して、いつでも喜んで数分を費やして、このインターネットの世界であなたが抱いている疑問を解決するお手伝いをしたいと考えています。



