Plex — inštalácia s Hardware Transcodingom

Kompletný návod: Docker Compose stack, cesta k médiám priamo v stacku, port forward alebo Cloudflare Tunnel pre vzdialený prístup bez relay, a aktivácia HW transcodingu keď si kúpiš Plex Pass.

Plex

Ak si čítal môj článok o Plexe, vieš o čo ide. Tu je postup od inštalácie cez pridanie knižnice až po správne nastavenie prístupu zvonka — aby to celé nešlo cez pomalý Plex relay.

Čo potrebuješ

Predpoklady

Docker a Portainer nainštalované. Plex účet — zdarma na plex.tv. Prístup k súborom cez SSH alebo File Manager. Cesta k tvojim médiám (filmom, seriálom) na NAS alebo serveri — napr. /volume1/media.

Plex Pass — nie je povinný pri inštalácii

Plex funguje bez Plex Pass — prehrávanie, vzdialený prístup, mobilné appky, zdieľanie knižnice. Hardware transcoding je funkcia Plex Pass. Ak ho nemáš, Plex bude používať softvérový transcoding — pomalší, zaťažuje CPU. Stačí ho kúpiť neskôr v Plex nastaveniach — reinštalácia nie je potrebná, HW transcoding sa aktivuje okamžite.

1. Zisti UID a GID (Synology/Linux)

Plex kontajner musí mať prístup k tvojim médiám — preto beží pod tvojím používateľom. V SSH spusti:

id tvoje_meno

Výstup: uid=1026(tvoje_meno) gid=100(users). Hodnoty PUID=1026 a PGID=100 použiješ v compose.

2. Vytvor priečinok pre konfig

Plex ukladá konfiguráciu, databázu a metadáta do jedného priečinka. Médiá ostávajú kde sú — len ich namapujeme.

mkdir -p /volume1/docker/plexhw

3. Vygeneruj Plex Claim Code

Claim code slúži na prepojenie kontajnera s tvojím Plex účtom. Je platný 4 minúty — vygeneruj ho tesne pred tým, ako klikneš Deploy the stack.

Prihlás sa na plex.tv/claim a skopíruj kód — bude vyzerať ako claim-xxxxxxxxxxxxxxxxxxxx.

4. Docker Compose stack

V Portainer: Stacks → Add stack → Web editor. Vyber platformu:

services:
  plex:
    image: ghcr.io/linuxserver/plex:latest
    container_name: PlexHW
    hostname: plex
    network_mode: host
    mem_limit: 4g
    cpu_shares: 1024
    security_opt:
      - no-new-privileges:true
    volumes:
      - /volume1/docker/plexhw:/config:rw
      - /volume1/media:/media:ro   # ZMEŇ NA SVOJU CESTU K MÉDIÁM
    devices:
      - /dev/dri/renderD128:/dev/dri/renderD128
      - /dev/dri/card0:/dev/dri/card0
    environment:
      TZ: Europe/Bratislava
      PUID: 1026          # ZMEŇ NA SVOJE UID (krok 1)
      PGID: 100           # ZMEŇ NA SVOJE GID (krok 1)
      VERSION: public
      PLEX_CLAIM: claim-xxxxxxxxxxxxxxxxxxxx  # ZMEŇ (krok 3)
    restart: on-failure:5
⚠️ Čo musíš nahradiť v stacku

/volume1/media — cesta k tvojim médiám na NAS/serveri. Môžeš pridať viac riadkov: - /volume1/filmy:/filmy:ro, - /volume1/serialy:/serialy:ro atď.
PUID/PGID (Synology/Linux) — hodnoty z kroku 1
PLEX_CLAIM — claim kód z kroku 3, platný 4 minúty
TZ — tvoja časová zóna

⚠️ HW transcoding devices (Synology/Linux)

Riadky /dev/dri/renderD128 a /dev/dri/card0 sú pre hardware transcoding. Skontroluj či tvoj NAS/server tieto zariadenia má: ls /dev/dri/. Ak nie — odstrán blok devices: zo stacku, Plex bude fungovať na softvérovom transcodingu.

Klikni Deploy the stack a počkaj na "Success Stack successfully deployed".

5. Prvé spustenie + pridanie knižnice

Otvor http://192.168.1.100:32400/web (nahraď IP svojho NAS). Prihlás sa Plex účtom.

Pomenuj server, potom klikni Add Library:

  • Vyber typ — Movies, TV Shows, Music
  • Klikni Browse For Media Folder
  • Nájdi priečinok /media (alebo ako si ho pomenoval v stacku) → Add
  • Klikni Add LibraryNextDone

Plex začne skenovať médiá a sťahovať metadáta — pri veľkej knižnici to môže trvať niekoľko minút.

Viac knižníc

Ak máš filmy a seriály v rôznych priečinkoch, pridaj v stacku viac volume mountov a potom pre každý vytvor zvlášť knižnicu v Plex. Plex dokáže automaticky rozlíšiť filmy od seriálov ak má správnu štruktúru priečinkov — /media/filmy/Filmovy Nazov (2024)/film.mkv.

6. Port forward alebo Cloudflare Tunnel

Toto je krok ktorý väčšina ľudí preskočí — a potom sa divujú prečo to seká u kamarátov. Bez priameho spojenia prechádza všetok stream cez Plex relay servery.

⚠️ Plex relay = max 2 Mbps

Ak nemáš nastavený priamy prístup, Plex presmeruje stream cez svoje servery — limit je 2 Mbps. Pri 1080p videu potrebuješ aspoň 8-10 Mbps, pri 4K 25-40 Mbps. Výsledok: sekanie, nízka kvalita, automatické znižovanie rozlíšenia. Vzdialení diváci nemôžu pozerať nič nad 480p.

Možnosť A — Port forward na routeri

V administrácii routera nastav presmerovanie portu:

  • External port: 32400
  • Internal IP: IP tvojho NAS/servera (napr. 192.168.1.100)
  • Internal port: 32400
  • Protocol: TCP

Postup závisí od modelu routera — zvyčajne v sekcii Port Forwarding, NAT alebo Virtual Servers.

⚠️ Bezpečnostná poznámka k port forwardu

Otvorením portu 32400 sprístupňuješ Plex priamo z internetu. Plex má vlastné prihlásenie — riziko je prijateľné, ale odporúčam pravidelne aktualizovať kontajner a mať silné heslo Plex účtu s 2FA.

Možnosť B — Cloudflare Tunnel

Čistejšia alternatíva — bez otvárania portov. Postup v článku o Cloudflare Tunnel. V Cloudflare Zero Trust vytvor public hostname napr. plex.tvojadomena.skhttp://localhost:32400.

⚠️ Cloudflare Tunnel a video streaming

Cloudflare ToS zakazuje streaming veľkých objemov videa cez ich sieť. Pre osobné použitie a zdieľanie s rodinou je riziko minimálne, ale technicky to nie je v súlade s podmienkami. Port forward je pre Plex "správnejší" spôsob.

Overenie priameho spojenia

Plex → Settings → Remote Access. Ak vidíš zelené "Fully accessible outside your network", všetko funguje. Vzdialení diváci sa pripájajú priamo na tvoj server — žiadny relay, plná rýchlosť.

Zdieľanie knižnice s rodinou/priateľmi

Plex → Settings → Manage Library Access → Share libraries. Zadaj email priateľa/rodiny → vyber ktoré knižnice zdieľať. Oni sa prihlásia svojím Plex účtom a uvidia tvoju knižnicu. Nepotrebujú nič inštalovať — stačí Plex appka alebo prehliadač.

7. Hardware Transcoding (vyžaduje Plex Pass)

Ak máš alebo si kúpiš Plex Pass, aktivuj HW transcoding:

Plex → Settings → Transcoder:

  • Background transcoding quality: Super fast
  • Zaškrtni Use hardware acceleration when available
  • Zaškrtni Use hardware-accelerated video encoding
  • Zaškrtni Enable HDR tone mapping
  • Klikni Save Changes
Ako spoznáš že HW transcoding funguje

Počas prehrávania videa choď v Plex na Dashboard → Now Playing. Pri aktívnom HW transcodingu uvidíš vedľa názvu súboru "(hw)" — napr. Transcoding (hw). Bez Plex Pass tam bude len (sw) — softvérový transcoding.

Troubleshooting

⚠️ Nevidí médiá v knižnici

Najpravdepodobnejšia príčina: Plex nemá oprávnenia čítať tvoje súbory. Na Synology: Control Panel → Shared Folder → Edit → Permissions → Local groups → users → Read/Write → Save. Potom v Plex klikni Scan Library Files.

⚠️ Stránka sa nenačíta na :32400

Počkaj 1-2 minúty po deployi — Plex potrebuje čas na prvé spustenie. Ak stále nefunguje, skontroluj logy v Portaineri (Containers → PlexHW → Logs). Časté príčiny: obsadený port 32400 inou inštaláciou Plexu, alebo zlý PUID/PGID.

⚠️ HW transcoding nefunguje

Skontroluj: (1) Plex Pass je aktívny na účte, (2) /dev/dri/ existuje na serveri (ls /dev/dri/), (3) kontajner bol spustený s devices: blokom v compose, (4) v Settings → Transcoder je zaškrtnuté hardware acceleration.

⚠️ Claim code expiroval

PLEX_CLAIM je platný 4 minúty. Ak expiroval, kontajner sa spustí ale nebude prepojený s účtom. Riešenie: zmaž stack v Portaineri, vygeneruj nový claim kód, vlož ho do compose a redeploy. Konfig v /volume1/docker/plexhw môžeš nechať — Plex si len znovu vyžiada prepojenie.