---
title: "Jellyfin: Docker Compose i hosting jednym kliknięciem"
description: "Jellyfin to darmowy serwer multimedialny na filmy, seriale i muzykę, alternatywa dla Plexa. Hostuj go u siebie, na własnej maszynie, jednym kliknięciem."
---

[← Wszystkie szablony](https://pethost.dev/pl/templates/) · [Multimedia](https://pethost.dev/pl/templates/media/)

# Wdróż Jellyfin jednym kliknięciem

Serwer multimedialny, który streamuje twoje filmy, seriale i muzykę na każde urządzenie

Alternatywa dla Plex i Emby, hostowana u siebie.

[Wdróż na Pethost](https://console.pethost.dev/?template=jellyfin)

## Czym jest Jellyfin?

Jellyfin to darmowy serwer multimedialny open source, który ludzie uruchamiają zamiast Plexa albo Emby. Układa filmy, seriale i muzykę, które masz, w biblioteki z plakatami, opisami i obsadą z metadanych pobieranych z sieci, a potem streamuje je do przeglądarki, na telefony, tablety i telewizory. Oficjalne aplikacje są na Androida, iOS, Android TV i Fire TV, Roku, telewizory LG i Samsung, Xboksa i Kodi, a Jellyfin Media Player działa na komputerach. Każda osoba dostaje własne konto, z własnym postępem oglądania i kontrolą rodzicielską.

Jellyfina hostuje się u siebie, żeby oglądać własne zbiory z każdego miejsca, bez konta w jakiejkolwiek firmie i bez abonamentu: nie ma płatnej wersji premium, śledzenia ani centralnych serwerów. Ten szablon konfiguruje go z administratorem podanym w polach formularza i trzema bibliotekami, Movies, Shows i Music, w katalogach wolumenu media. Haczyk to transkodowanie. Gdy urządzenie nie potrafi odtworzyć pliku takim, jaki jest, Jellyfin konwertuje go w locie, tutaj na CPU, co jest ciężką pracą, więc lekkie są pliki, które twoje urządzenia odtwarzają bezpośrednio, takie jak wideo H.264 w MP4.

## Hosting Jellyfin na Pethost

1. Logujesz się do Pethost kluczem dostępu, przez GitHub albo Google. Nie masz jeszcze maszyny? Wybierasz plan, a link czeka, aż będzie gotowa.
2. Okno „Nowy projekt” otwiera się na aplikacji Jellyfin. Wypełniasz to, o co prosi, i klikasz „Utwórz projekt”: **Nazwa użytkownika**, **Hasło administratora**.
3. Za minutę czy dwie aplikacja Jellyfin działa pod własnym adresem z HTTPS. Jej sekrety są tworzone losowo, a dane trafiają do nocnego backupu.
4. To projekt jak każdy inny: ty albo twój agent możecie go zmienić, cofnąć do wcześniejszej wersji albo przywrócić.

## Pytania o Jellyfin

**Czy Jellyfin jest naprawdę darmowy?**

Tak. Jellyfin to wolne oprogramowanie na licencji GNU GPL, a jego serwer i oficjalne aplikacje nic nie kosztują: nie ma wersji premium ani płatnych funkcji. Tworzą go wolontariusze.

**Jellyfin czy Plex: jaka jest różnica?**

Oba streamują twoje własne zbiory na twoje urządzenia. Serwer Plexa ma zamknięty kod, jego konta działają przez plex.tv, a od kwietnia 2025 oglądanie własnych zbiorów poza domem wymaga Plex Pass albo Remote Watch Pass. Jellyfin jest open source, nie wymaga zewnętrznego konta i za nic nie pobiera opłat.

**Na jakich urządzeniach można oglądać Jellyfin?**

W każdej nowoczesnej przeglądarce i w oficjalnych aplikacjach na Androida, iOS, Android TV i Fire TV, Roku, LG webOS, Samsung Tizen i Xboksa. Jellyfin Media Player działa na Windowsie, macOS i Linuksie, a dodatek JellyCon wprowadza Jellyfina do Kodi.

**Jak nazywać pliki filmów i seriali w Jellyfin?**

Każdy film dostaje katalog nazwany tytułem i rokiem, na przykład Big Buck Bunny (2008), a w nim wideo pod tą samą nazwą. Serial dostaje własny katalog, a w nim Season 01, Season 02 i tak dalej, z odcinkami nazwanymi jak Show Name S01E01.mkv. Wtedy Jellyfin znajduje właściwe plakaty i opisy.

**Czy Jellyfin potrzebuje karty graficznej?**

Nie. GPU tylko przyspiesza transkodowanie, czyli konwersję potrzebną urządzeniu, które nie potrafi odtworzyć pliku takim, jaki jest; bez GPU Jellyfin transkoduje na CPU. Trudny przypadek to wideo HDR: według dokumentacji Jellyfina żaden współczesny procesor konsumencki nie wykonuje dla niego mapowania tonów w czasie rzeczywistym. Pliki, które twoje urządzenia odtwarzają bez zmian, w ogóle nie wymagają transkodowania.

**Ile pamięci i miejsca na dysku potrzebuje Jellyfin?**

Jellyfin bez obciążenia zajmuje około 250 MB pamięci, a dysk to twoja biblioteka; transkodowanie wideo odbywa się na CPU i jest bardzo wymagające. Na Pethost wystarczy mu plan Starter, z miejscem na inne aplikacje obok.

## Jellyfin: plik Docker Compose

Szablon to ten compose.yaml i zmienne zapisywane do .env projektu przy jego tworzeniu. Pethost uruchamia plik dokładnie tak, jak jest napisany.

**Kontenery:** jellyfin (jellyfin/jellyfin:12).

**Wolumeny, w nocnym backupie:** config, cache, media.

```
services:
  jellyfin:
    image: jellyfin/jellyfin:12
    restart: unless-stopped
    environment:
      ADMIN_USERNAME: ${ADMIN_USERNAME}
      ADMIN_PASSWORD: ${ADMIN_PASSWORD}
    # A new server's startup wizard is open to whoever comes first. So until the wizard is done,
    # Jellyfin runs on port 8097, which nobody reaches: there it is given the administrator from
    # the fields and a library for each folder of /media, and only then answers on 8096.
    entrypoint: ["/bin/sh", "-c"]
    command:
      - |
        set -e
        config=/config/config
        if ! grep -qs '<IsStartupWizardCompleted>true<' "$$config/system.xml"; then
          mkdir -p "$$config" /media/movies /media/shows /media/music
          if [ -f "$$config/network.xml" ]; then
            sed -i 's|<InternalHttpPort>[0-9]*<|<InternalHttpPort>8097<|' "$$config/network.xml"
          else
            printf '<?xml version="1.0" encoding="utf-8"?>\n<NetworkConfiguration>\n  <InternalHttpPort>8097</InternalHttpPort>\n</NetworkConfiguration>\n' > "$$config/network.xml"
          fi
          /jellyfin/jellyfin &
          setup=$$!
          api() { curl -fsS -H 'Content-Type: application/json' "$$@"; }
          # 401: an administrator with a password exists already, from a first start cut short,
          # and Jellyfin has marked its wizard done by itself.
          until wizard=$$(curl -sS -o /dev/null -w '%{http_code}' http://127.0.0.1:8097/Startup/Configuration) &&
            { [ "$$wizard" = 200 ] || [ "$$wizard" = 401 ]; }; do sleep 2; done
          if [ "$$wizard" = 200 ]; then
            api -d '{"ServerName":"Jellyfin","UICulture":"en-US","MetadataCountryCode":"US","PreferredMetadataLanguage":"en"}' http://127.0.0.1:8097/Startup/Configuration
            library() {
              api http://127.0.0.1:8097/Library/VirtualFolders | grep -q "\"Name\":\"$$1\"" ||
                api -d '{"LibraryOptions":{"EnableRealtimeMonitor":true}}' "http://127.0.0.1:8097/Library/VirtualFolders?name=$$1&collectionType=$$2&paths=/media/$$3"
            }
            library Movies movies movies
            library Shows tvshows shows
            library Music music music
            api -o /dev/null http://127.0.0.1:8097/Startup/User
            json() { printf '%s' "$$1" | sed 's/\\/\\\\/g; s/"/\\"/g'; }
            api -d "{\"Name\":\"$$(json "$$ADMIN_USERNAME")\",\"Password\":\"$$(json "$$ADMIN_PASSWORD")\"}" http://127.0.0.1:8097/Startup/User
            api -d '{"EnableRemoteAccess":true,"EnableAutomaticPortMapping":false}' http://127.0.0.1:8097/Startup/RemoteAccess
            api -X POST http://127.0.0.1:8097/Startup/Complete
          fi
          kill $$setup
          wait $$setup || true
          sed -i 's|<InternalHttpPort>8097<|<InternalHttpPort>8096<|' "$$config/network.xml"
        fi
        exec /jellyfin/jellyfin
    volumes:
      - config:/config
      - cache:/cache
      # Writable, so that films, shows and music can be copied in over SFTP.
      - media:/media

volumes:
  config:
  cache:
  media:
```

[compose.yaml](https://pethost.dev/templates/jellyfin/compose.yaml)[Zobacz na GitHubie](https://github.com/pethost-dev/templates/tree/main/jellyfin)

## [Więcej w kategorii Multimedia](https://pethost.dev/pl/templates/media/)

- [**Owncast**Wideo na żywo i czat na twojej własnej stronie](https://pethost.dev/pl/templates/owncast/)
- [**Navidrome**Serwer muzyczny, który streamuje twoją własną kolekcję](https://pethost.dev/pl/templates/navidrome/)
- [**RomM**Biblioteka i odtwarzacz w przeglądarce dla twoich gier retro](https://pethost.dev/pl/templates/romm/)
- [**Komga**Serwer i czytnik w przeglądarce dla twoich komiksów, mang i e-booków](https://pethost.dev/pl/templates/komga/)
- [**Lychee**Galeria do wgrywania, porządkowania i udostępniania zdjęć](https://pethost.dev/pl/templates/lychee/)
- [**Audiobookshelf**Własny serwer audiobooków i podcastów: słuchaj w przeglądarce lub w aplikacjach, z postępem zapamiętanym na wszystkich urządzeniach](https://pethost.dev/pl/templates/audiobookshelf/)

Pethost · Stephan Gomer · NIP 1133096755

Pethost

- [Szablony](https://pethost.dev/pl/templates/)
- [O nas](https://pethost.dev/about/)
- [Dokumentacja](https://pethost.dev/docs/)
- [Blog](https://pethost.dev/pl/blog/)
- [API](https://pethost.dev/docs/api/)
- [CLI](https://pethost.dev/docs/cli/)
- [Plugin](https://github.com/pethost-dev/plugin)
- [Regulamin](https://pethost.dev/terms/)
- [Prywatność](https://pethost.dev/privacy/)
- [Zwroty](https://pethost.dev/refunds/)
- [support@pethost.dev](mailto:support@pethost.dev)

Bazy danych

- [Postgres](https://pethost.dev/pl/postgres/)

Porównania

- [Coolify vs Dokploy vs CapRover vs Dokku](https://pethost.dev/pl/blog/coolify-vs-dokploy-vs-caprover-vs-dokku/)
- [Coolify Cloud vs Dokploy Cloud](https://pethost.dev/pl/blog/coolify-cloud-vs-dokploy-cloud/)
- [Cennik Railway vs Render vs Fly.io](https://pethost.dev/pl/blog/railway-vs-render-vs-fly-io-pricing/)
- [Zarządzany hosting Docker Compose](https://pethost.dev/pl/blog/managed-docker-compose-hosting/)

Alternatywy

- [Alternatywy dla Railway](https://pethost.dev/pl/blog/railway-alternatives/)
- [Alternatywy dla Heroku](https://pethost.dev/pl/blog/heroku-alternatives/)
- [Alternatywy dla Dokploy](https://pethost.dev/pl/blog/dokploy-alternatives/)
- [Alternatywy dla Coolify](https://pethost.dev/pl/blog/coolify-alternatives/)
- [Alternatywy dla Render](https://pethost.dev/pl/blog/render-alternatives/)
- [Alternatywy dla Sliplane](https://pethost.dev/pl/blog/sliplane-alternatives/)
