Jellyfin на VPS: медиасервер для фильмов и сериалов — иллюстрация к статье Storm Cloud Blog, категория DevOps
Jellyfin на VPS: медиасервер для фильмов и сериалов — иллюстрация к статье Storm Cloud Blog, категория DevOps
DevOps·4 мин··

Jellyfin на VPS: медиасервер для фильмов и сериалов

Jellyfin media server на VPS: Docker, hardware transcoding, reverse proxy, SSL. Бесплатная альтернатива Plex без подписок.

Краткий ответ: Jellyfin — open-source медиасервер без paywall. VPS 2–4 GB + большой диск (или mount): Docker, Nginx + SSL, клиенты на TV/phone.

Контент вы храните легально (свои rips, Creative Commons, личные видео). Jellyfin индексирует библиотеку и стримит домашним пользователям.


Jellyfin vs Plex vs Emby

Jellyfin Plex Emby
Open-source Да Freemium Freemium
Phone sync fee Нет Plex Pass Premium
Plugins Да Да Да
Self-hosted Полностью Частично Да

Для семьи без подписок — Jellyfin. Для IoT — EMQX, не путать.


Когда VPS, а когда домашний NAS

VPS NAS дома
Доступ из любой точки Локальная скорость 1 Gbit
Нужен большой uplink 4K direct play без transcoding
Нет домашнего IP Дешевле TB storage

VPS 2 TB дорого — часто VPS proxy + storage дома через Tailscale или только metadata на VPS.


Требования

  • RAM: 2 GB минимум, 4 GB если transcoding
  • CPU: transcoding 1080p — 4 vCPU; 4K — GPU или не transcode
  • Disk: библиотека медиа (100 GB – несколько TB)
  • Bandwidth: 1080p ~5–10 Mbps на поток

Docker установка

services:
  jellyfin:
    image: jellyfin/jellyfin:latest
    restart: unless-stopped
    ports:
      - "127.0.0.1:8096:8096"
    volumes:
      - ./config:/config
      - ./cache:/cache
      - /mnt/media:/media:ro
    environment:
      - JELLYFIN_PublishedServerUrl=https://jelly.example.com

/mnt/media — attach volume или MinIO mount (не ideal для streaming latency).


Reverse proxy + SSL

location / {
  proxy_pass http://127.0.0.1:8096;
  proxy_set_header Host \$host;
  proxy_set_header X-Real-IP \$remote_addr;
  proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
  proxy_set_header X-Forwarded-Proto \$scheme;
}

WebSocket для некоторых клиентов — включите upgrade headers. SSL — certbot или Caddy.


Библиотеки и naming

Структура для автоматического метadata:

/media
  /movies
    /The Matrix (1999)
      The Matrix (1999).mkv
  /tv
    /Breaking Bad
      /Season 01
        Breaking Bad - S01E01.mkv

Jellyfin → Dashboard → Libraries → Scan. Metadata plugins: TMDB, TVDB (API keys опционально).


Transcoding

Settings → Playback → Transcoding:

  • Software — работает везде, грузит CPU
  • Hardware — Intel QuickSync / NVIDIA на bare metal; на VPS редко есть GPU
  • Стратегия: direct play когда клиент поддерживает codec

На VPS без GPU ограничьте max simultaneous transcodes = 1–2.

# Мониторинг CPU при transcode
htop

Доступ извне

  1. HTTPS обязателен (credentials!)
  2. Authentik — optional SSO
  3. Не открывайте 8096 напрямую — только через Nginx
  4. Fail2ban на auth failures

Для семьи — отдельные user accounts, Kids profile с рейтинг limit.


Клиенты

  • TV: Android TV, Fire TV, Roku (Jellyfin app)
  • Mobile: iOS/Android official apps
  • Web: браузер через ваш domain
  • Desktop: Jellyfin Media Player

Live TV / IPTV (опционально)

Jellyfin поддерживает M3U tuner — legal IPTV subscriptions. Настройка Tuner → M3U URL. EPG через xmltv.


Мониторинг и логи

docker compose logs -f jellyfin
  • Disk space на /media и /cache
  • Netdata — CPU spikes при transcode
  • Uptime Kuma — HTTP 200 on /web

Бэкапы

  • ./config — users, watch state, settings (backup daily)
  • /mediaRestic (heavy, но critical)
tar czf jellyfin-config-$(date +%F).tar.gz ./config

Типичные проблемы

Проблема Решение
Buffering Uplink VPS / transcoding overload
No metadata Naming convention + scan library
Login loop behind proxy X-Forwarded-Proto, PublishedServerUrl
Subtitles burn-in slow Disable burn, use direct stream
413 upload Nginx client_max_body_size

Юридическое

Jellyfin — инструмент. Вы отвечаете за легальность контента. Не используйте для пиратского distribution. VPS ToS некоторых провайдеров ограничивает DMCA-heavy usage.


Итог

Jellyfin на VPS — свой Netflix без абонплаты Plex Pass. Docker + Nginx + SSL + правильная структура папок = семейный streaming.

VPS с хорошим uplink — StormNet Cloud. Большие файлы — Nextcloud для sync + Jellyfin для play.

Частые вопросы

Jellyfin или Plex на VPS?

Jellyfin полностью бесплатен без подписок. Plex удобнее out-of-box, но mobile sync и часть фич — Plex Pass.

Нужен ли GPU на VPS для Jellyfin?

Для direct play — нет. Для transcoding 1080p+ одновременно — желателен GPU или мощный CPU; на типичном VPS transcoding ограничен.