Instalează medialab Server, varianta gratuită de Jellyfin 12.2, cu Docker sau apt

Ghid practic pentru trecerea unui server Jellyfin existent la medialab Server, varianta gratuită GPL-2.0 de Jellyfin 12.2 cu MediaLab TV inclus, păstrând bibliotecile, utilizatorii și aplicațiile.

De ce să faci trecerea acum

Dacă rulezi un server Jellyfin pe hardware-ul tău, probabil ai urmărit lansarea 12.2. medialab Server este varianta noastră de Jellyfin 12.2: aceleași biblioteci, utilizatori și aplicații, cu plugin-urile noastre verificate incluse și cu MediaLab TV inclus. Este software liber sub GPL-2.0, fără cheie de licență și cu codul sursă public.

Nu este o migrare. Aplicațiile Jellyfin pentru Android, iOS, TV și web se conectează exact ca la Jellyfin oficial. Ce se schimbă este casa în care stau plugin-urile: catalogul nostru se adaugă automat, plugin-urile noastre apar cu Verified – medialab și sunt primele între tunerele Live TV, sursele de ghid și furnizorii de subtitrări, iar ordinea o poți schimba oricând.

Mai jos ai două căi de instalare — un stack jellyfin docker compose și pachetele apt pe Debian 12 — plus lucrul pe care trebuie să-l faci înainte de orice: o copie de siguranță.

Înainte de start: ușa cu sens unic

La prima pornire, baza de date Jellyfin este actualizată la formatul 12.2. O versiune mai veche de Jellyfin nu mai poate deschide acea bază de date. Nu există cale de downgrade pentru date în sine, așa că tratează asta ca pe o actualizare cu sens unic.

Așadar, înainte de orice:

  • Fă o copie de siguranță a setărilor și a datelor. Pentru un setup în container asta înseamnă tot folderul /config; pentru apt înseamnă /etc/jellyfin și /var/lib/jellyfin.
  • Ține copia undeva unde serverul nu are acces și notează ce versiune de Jellyfin rulai.
  • Dacă ai utilizatori ale căror nume diferă doar prin majuscule/minuscule, verifică-i înainte de actualizare. Documentația semnalează asta ca punct de verificat înainte de trecere.

Fă asta, iar restul e rutină.

Cerințe preliminare

  • O mașină pe 64 de biți, x86 sau ARM. Ubuntu este în regulă pentru container.
  • Pentru varianta cu container: Docker (sau Podman, Unraid, Portainer, Kubernetes), un folder pentru /config, unul pentru /cache, folderul tău media și PUID/PGID numerice ale contului care trebuie să dețină setările (id -u, id -g).
  • Pentru varianta cu apt: Debian 12 (bookworm), amd64 sau arm64. Pachetele au nevoie de bibliotecile din Debian 12, deci nu se instalează pe Ubuntu — acolo folosește containerul.
  • Datele tale Jellyfin existente, salvate în copie de siguranță.

Pasul 1: Instalare cu Docker Compose

Imaginea este ghcr.io/cristiancasapu/medialab-server, construită pentru linux/amd64 și linux/arm64 din aceleași pachete Debian semnate ca depozitul apt.

Creează un compose.yaml:

services:
  medialab-server:
    image: ghcr.io/cristiancasapu/medialab-server:12.2-ml.10
    container_name: medialab-server
    restart: unless-stopped
    ports:
      - "8096:8096"
      - "7359:7359/udp"
    volumes:
      - ./config:/config
      - ./cache:/cache
      - /srv/media:/media:ro
    environment:
      PUID: 1000
      PGID: 1000
      TZ: Europe/Bucharest
      MLW_SERVER_NAME: Home media
      MLW_ADMIN_USER: admin
      MLW_ADMIN_PASSWORD_FILE: /run/secrets/admin_password
    secrets:
      - admin_password

secrets:
  admin_password:
    file: ./secrets/admin_password

Apoi:

mkdir -p secrets && printf '%s' 'a-long-password' > secrets/admin_password
docker compose up -d
docker compose logs -f

Câteva note despre tag-uri: 12.2-ml.10 fixează o singură versiune (recomandat dacă vrei să alegi tu când actualizezi), 12.2 urmărește cea mai nouă versiune 12.2, iar latest cea mai nouă versiune în general. Tag-ul 12.2-ml10-deb12 numește versiunea apt exactă din interiorul imaginii.

Variabilele de administrator funcționează doar pe un server nou; pe unul deja configurat sunt ignorate. Parola nu apare niciodată în logurile containerului, de aceea stă într-un fișier, nu pe linia de comandă. Un exemplu complet cu fișier .env se află în depozit (examples/compose.yaml, examples/.env.example).

Pe Unraid, adaugă un container și setează URL-ul șablonului la fișierul medialab-server.xml din folderul examples/unraid/ al depozitului (sau copiază-l în /boot/config/plugins/dockerMan/templates-user/), verifică faptul că /config indică /mnt/user/appdata/medialab-server și /media indică partajarea ta media, folosește PUID 99 și PGID 100 și adaugă --device=/dev/dri la Extra Parameters dacă ai un GPU Intel sau AMD. Portainer și Kubernetes funcționează cu aceeași imagine și aceleași volume.

Pasul 2: Instalare cu apt pe Debian 12

Pachetele vin de la https://apt.medialab.works/debian. Mai întâi adaugă depozitul, care vine ca pachet semnat:

curl -fsSLO https://apt.medialab.works/medialab-repo.deb
sudo apt install ./medialab-repo.deb

Asta creează /etc/apt/sources.list.d/medialab.sources și instalează cheia de semnare. Dacă preferi să o faci manual, descarcă cheia în /usr/share/keyrings/medialab-archive-keyring.gpg și verifică amprenta: trebuie să fie 6B7D 46D8 2C3C 4D4C 0A14 2F92 4189 96EB 3CE1 59C7, pentru „medialab Server packages packages@medialab.works”. Apoi scrie același fișier medialab.sources. apt verifică semnătura la fiecare apt update.

Instalează:

sudo apt update
sudo apt install medialab-server medialab-server-web jellyfin-ffmpeg8

medialab-server înlocuiește jellyfin-server, iar medialab-server-web înlocuiește jellyfin-web. Dacă Jellyfin este deja instalat din depozitul Jellyfin, apt elimină aceste două pachete și îți păstrează datele, pentru că medialab Server folosește aceleași foldere. Dacă depozitul Jellyfin este încă configurat, apt menține pachetele medialab instalate; poți elimina depozitul vechi când nu mai ai nevoie de el.

Serverul rulează ca serviciul obișnuit jellyfin, sub utilizatorul jellyfin:

sudo systemctl status jellyfin
sudo systemctl restart jellyfin
sudo journalctl -u jellyfin -f

Căile sunt cele cunoscute: /etc/jellyfin pentru setări, /var/lib/jellyfin pentru baza de date, plugin-uri și metadate, /var/log/jellyfin, /var/cache/jellyfin, /etc/default/jellyfin pentru opțiunile de pornire, /usr/share/jellyfin/web pentru interfața web și /usr/lib/jellyfin-ffmpeg/ffmpeg. Pentru a schimba utilizatorul serviciului sau alte opțiuni systemd, folosește sudo systemctl edit jellyfin. Pentru transcodare hardware pe un GPU Intel sau AMD, pachetul adaugă utilizatorul jellyfin în grupurile render și video.

Pasul 3: Prima pornire și verificări

Deschide http://<server>:8096. Pe un server nou, asistentul de configurare îți cere primul administrator, limba și bibliotecile din /media. Pe unul existent, datele tale sunt deja acolo — așa că parcurge-le:

  • Biblioteci: căile se rezolvă în continuare și scanările se termină.
  • Utilizatori: toată lumea se poate autentifica și nici două nume nu diferă doar prin majuscule/minuscule.
  • Plugin-uri: catalogul nostru se adaugă singur și plugin-urile noastre apar cu Verified – medialab; serverul le verifică semnăturile și semnalează un plugin schimbat după publicare.
  • Accelerare hardware: confirmă că transcodarea funcționează și că grupurile render/video (apt) sau /dev/dri (container) sunt la locul lor.

MediaLab TV, inclus

Din 12.2-ml.8, aplicația de televizor face parte din server, gratuit — fără plugin și fără abonament separat. Pe un televizor fără aplicație Jellyfin, deschide https://<server>:8096/web/tv/ sau folosește intrarea MediaLab TV din meniul utilizatorilor și obții interfața în stil Netflix: Continue Watching, Next Up, biblioteci, My List, live TV, pagini de titlu, căutare cu tastatură pe ecran și profiluri, cu player propriu pentru piste audio, subtitrări, reluare și Skip intro / recap / credits.

Setările se află în meniul utilizatorilor, la MediaLab TV – admin: nume, logo (PNG/SVG), culori, limbă, cale de acces și Turnstile. Dacă aveai instalat plugin-ul jf-tvapp, serverul preia setările, logo-ul și cheia Turnstile ale acestuia și nu mai încarcă plugin-ul; aceleași adrese funcționează în continuare. Pe Jellyfin oficial, MediaLab TV rămâne plugin-ul jf-tvapp.

Actualizare și revenire

  • Container: trage noul tag 12.2-ml.N și recreează containerul; setările din /config rămân.
  • apt: sudo apt update && sudo apt upgrade, sau folosește plugin-ul Self-Update din interfața web.

Fiecare versiune este listată în changelog. Pentru a reveni la Jellyfin oficial, reinstalează pachetele sau imaginea lui peste aceleași date — dar ține minte că baza de date este deja în formatul 12.2, deci ai nevoie de un Jellyfin oficial care o poate deschide. Exact de aceea copia de siguranță vine prima.

Sfaturi și depanare

  • Păstrează copia de siguranță până ești mulțumit. Actualizarea bazei de date este cu sens unic; o copie a /config (sau /etc/jellyfin plus /var/lib/jellyfin) este singura ta cale de întoarcere.
  • Ubuntu și apt nu se combină aici. Pachetele au nevoie de bibliotecile din Debian 12; pe Ubuntu, folosește imaginea de container.
  • Întâi logurile. docker compose logs -f pentru containere, sudo journalctl -u jellyfin -f pentru apt.
  • Permisiuni. Un PUID/PGID greșit se manifestă ca media care nu poate fi citită sau un /config în care nu se poate scrie.
  • Ordinea plugin-urilor este a ta. Plugin-urile noastre sunt primele între tunere, surse de ghid și furnizori de subtitrări, dar poți schimba ordinea oricând.

Concluzie

medialab Server este cea mai puțin dramatică actualizare pe care o poți face: aceleași aplicații, aceleași date, aceleași foldere — cu Jellyfin 12.2 dedesubt, plugin-urile noastre verificate în față și MediaLab TV inclus. Fă o copie de siguranță, alege Docker Compose sau apt și pornește-l. Pagina produsului și ghidul utilizatorului acoperă detaliile, iar Bază de cunoștințe are articolele complete despre container și apt. Ai întrebări? Întrebări frecvente și pagina de contact sunt deschise.

Postarea a fost scrisă cu ajutorul AI pe baza documentației produselor noastre sau a surselor indicate și verificată automat înainte de publicare.

Citește și

Ai un server Emby, Jellyfin sau Nextcloud?

Plugin-urile și aplicațiile noastre adaugă Live TV, subtitrări, înregistrare și securitate pe serverul tău, cu probă gratuită.