メディア · KYC不要
Jellyfin をオフショアVPSでホスト
オフショアの no-KYC VPS 上で完全セルフホスト型の Jellyfin メディアサーバーを構築し、サブスクリプションや本人と紐づくアカウントなしで、どこからでもライブラリをストリーミングできます。
概要
Jellyfin は無料のオープンソースメディアサーバーで、映画・テレビ番組・音楽・写真を整理し、Web ブラウザやネイティブアプリを通じてあらゆるデバイスにストリーミングできます。商用プラットフォームと異なり、ライセンスキーもテレメトリもクラウド依存も一切なく、サーバーとデータはすべて自分の所有物です。
オフショアでホストする理由
Jellyfin を no-KYC・暗号資産決済の VPS でホストすれば、メディアライブラリや視聴履歴がプロバイダーの本人確認記録に残ることはなく、オフショアのプライバシー重視法域がデータ保持規制からの法的な距離をさらに確保します。無制限帯域幅により、大容量ライブラリや複数の同時リモートストリーミングでも、主流クラウドのようにギガバイト単位の転送料金がかさむことはありません。
デプロイ
実際に動作するリファレンス構成
これを新しいChainVPSインスタンスにコピーしてください。プレースホルダーを置き換えてから起動します。
# 1. ホスト上にデータディレクトリを作成する
# mkdir -p /srv/jellyfin/{config,cache} /srv/media
#
# 2. これを /srv/jellyfin/docker-compose.yml として保存し、実行する: docker compose up -d
# Web UI は http://SERVER_IP:8096 でアクセスできる(本番環境ではリバースプロキシ + TLS を前段に配置すること)
services:
jellyfin:
image: jellyfin/jellyfin:latest
container_name: jellyfin
user: "1000:1000" # ボリュームを所有する非特権ホストユーザーとして実行
restart: unless-stopped
ports:
- "8096:8096" # HTTP Web インターフェース / API
- "8920:8920" # 任意: HTTPS(コンテナ内で TLS を終端する場合のみ)
- "7359:7359/udp" # 任意: LAN クライアントの自動検出
- "1900:1900/udp" # 任意: DLNA
volumes:
- /srv/jellyfin/config:/config
- /srv/jellyfin/cache:/cache
- /srv/media:/media:ro # ライブラリ。安全のため読み取り専用でマウント
environment:
- TZ=Europe/Amsterdam
# Intel/AMD のハードウェアトランスコーディング(VAAPI)を使う場合は、以下も追加:
# devices:
# - /dev/dri:/dev/dri
ファイアウォール
開放するポート
| ポート | プロトコル | 用途 |
|---|---|---|
| 8096 | TCP | メインの HTTP Web UI および API — 通常公開するのはこのポートのみ(TLS リバースプロキシの背後に配置) |
| 8920 | TCP | 任意: プロキシではなく Jellyfin 自身に TLS を終端させる場合の組み込み HTTPS |
| 7359 | UDP | 任意: LAN クライアントの自動検出 — 公開 VPS では閉じたままにする |
| 1900 | UDP | 任意: DLNA/SSDP — 公開 VPS では閉じたままにする |
適正サイジング
必要なプラン
VPS Small (2 vCPU / 4 GB)
1〜2 本のダイレクトプレイ・ストリーム、トランスコードなし — ファイルはそのまま再生されます。モダンなクライアントへの個人ライブラリ配信であれば十分です。
VPS Pro (4+ vCPU / 8 GB)
1080p のソフトウェアトランスコードを数本同時に処理可能。ボトルネックは CPU で、コア数が多いほど同時トランスコード数も増えます。
GPU VPS または専用サーバー(ライブラリ用に Storage プランを追加)
4K や多数の同時トランスコードには、NVENC/QSV/VAAPI によるハードウェアトランスコード用に GPU を追加し、ライブラリがローカル NVMe の容量を超えたら Storage プランを組み合わせてください。
最適なロケーション: 15 拠点すべてが利用可能ですが、プライベートなメディアサーバーには 6 つのプライバシー重視法域(NL、CH、RO、IS、MD、LU)が最適です。最も強固なデータ保護体制を求めるならスイスとアイスランド、無制限回線でリモートストリーミングを快適に保つ高スループットの欧州ピアリングを求めるならオランダとルーマニアが向いています。レイテンシとトランスコードのバッファリングを最小限に抑えるには、実際に視聴する場所に最も近い拠点を選んでください。
セキュリティを固める
セキュリティ強化チェックリスト
- ポート 8096 を生のままインターネットに公開しないこと — 有効な TLS 証明書を備えた Nginx/Caddy を前段に配置して認証情報とストリームを暗号化し、公開するのは HTTPS エンドポイントのみにしてください。
- Jellyfin の Dashboard > Networking で 'Enable automatic port mapping (UPnP)' を無効化し、リモート DLNA もオフにしてください。また、示したとおりメディアボリュームを読み取り専用(:ro)でマウントし、コンテナが侵害されてもソースファイルを改変できないようにします。
- 日常的なストリーミング用に管理者権限のない専用ユーザーを作成し、管理者アカウントは設定作業のためだけに使ってください。組み込みのブルートフォース/ログイン失敗対策を有効にし、長く一意なパスワードを使用してください。
- コンテナは固定・更新済みのイメージを使い、定期的に `docker compose pull && docker compose up -d` を実行してください — Jellyfin は頻繁にセキュリティ修正を配布しており、非特権の user:"1000:1000" マッピングが被害範囲を限定します。
- サーバーの前段には標準搭載の DDoS 対策を利用し、admin/dashboard パスを IP 許可リストや VPN で制限することも検討してください。そうすることで、到達可能なのは公開ストリーミングエンドポイントのみになります。
質問
ホスティング Jellyfin — FAQ
Jellyfin の実行に GPU は必要ですか?
いいえ。クライアントがファイルをダイレクトプレイできる場合(コーデック/コンテナが一致している場合)、Jellyfin はそのままストリーミングするだけで CPU 負荷はごくわずかです。GPU が重要になるのは、クライアントが異なるフォーマットや解像度を必要としてハードウェアトランスコードが発生する場合だけです。4K や多数の同時トランスコードでは、GPU プランがソフトウェアトランスコードに比べて大きな効率向上をもたらします。
無制限帯域幅は本当にメディアサーバーをカバーできますか?
はい — それこそがここで運用する意味です。リモートストリーミングは帯域幅を大量に消費し(1080p ストリームは 8〜15 Mbps に達することもあります)、従量制のクラウドでは予想外の転送料金につながります。ChainVPS の無制限回線なら、ギガバイト単位の課金なしに大容量ライブラリを複数デバイスへストリーミングできます。
VPS のディスクに収まらない大きなライブラリはどこに保存すればよいですか?
コンピュートプランに Storage プランを組み合わせて /media ボリュームとしてマウントするか、ブロックストレージをアタッチしてください。Jellyfin の /config と /cache は高速な NVMe に置いて UI の応答性を保ち、大容量のメディア本体はより大きく安価なストレージ層に置くのがおすすめです。
ここで Jellyfin を運用するのはプライベートですか?
Jellyfin 自体はテレメトリを送信せず、どのベンダーのアカウントも必要としません。no-KYC での申し込み、暗号資産決済、オフショアのプライバシー重視ロケーションと組み合わせれば、サーバーやそのコンテンツとあなたを結びつける本人確認記録は一切残りません。あなたとサーバー間のストリームを転送時に暗号化するため、必ず TLS を導入してください。
安全にアップデートを維持するにはどうすればよいですか?
単一コンテナ構成のため、アップデートは `docker compose pull && docker compose up -d` だけで済みます。データはマウントされた /config と /media ボリュームに保存されているため、新しいイメージを取得してもライブラリや設定には影響しません。メタデータとユーザーアカウントを保持するために、/config ディレクトリを定期的にバックアップしてください。
セルフホストをもっと見る