פורסם

Jellyfin

שרת מדיה חופשי לסרטים, סדרות, מוזיקה, ספרים ותמונות שלכם, עם הזרמה לאפליקציית web וללקוחות טלוויזיה, מובייל ו-desktop, משתמשים, היסטוריית צפייה והמרה (transcoding) בזמן אמת עם FFmpeg. הפריסה העצמית היא קונטיינר אחד עם מסד נתונים SQLite.

משאבים לפי רמת עומס

מה האפליקציה עצמה צריכה בכל רמה, לצד מה שאנחנו ממליצים לשרת שמריץ רק אותה.

רמהמה זה אומרדרישות האפליקציהמומלץ
קלהערכהעד 3 משתמשים בבית, כ-1,000 סרטים ופרקים, 2 הזרמות במקביל ולכל היותר המרה אחת של 1080p ‏SDR על ה-CPU; כ-50 פריטים חדשים בחודש.2.5 vCPU · 2 GiB RAM · 24 GiB דיסק3.12 vCPU · 3.9 GiB RAM · 36.915 GiB דיסק
בינוניהערכהעד 10 משתמשים, כ-5,000 סרטים ופרקים, 4 הזרמות במקביל ועד שתי המרות של 1080p ‏SDR על ה-CPU; כ-200 פריטים חדשים בחודש.4.5 vCPU · 3.5 GiB RAM · 58 GiB דיסק5.52 vCPU · 5.7 GiB RAM · 76.015 GiB דיסק
כבדהערכהעד 25 משתמשים, כ-20,000 סרטים ופרקים, 8 הזרמות במקביל ועד שלוש המרות של 1080p ‏SDR על ה-CPU, והשאר direct play; כ-500 פריטים חדשים בחודש.7 vCPU · 6 GiB RAM · 140 GiB דיסק8.52 vCPU · 8.7 GiB RAM · 170.315 GiB דיסק

מומלץ = דרישות האפליקציה + baseline של המערכת + מרווח ביטחון (headroom), לפי מדיניות ה-sizing ‏2026.10.0. האפשרויות נשארות בברירת המחדל. ״הערכה״ פירושה שהמקורות לא נותנים מספר למקרה הזה, ולכן הוא מחושב מהם בשיטה שמפורטת תחת רכיבים. איך המספרים נבנים

לחישוב ב-Stack Sizer

קבצים מוכנים להפעלה

רמת תמיכה נתמך

תבנית Compose מהמקורות הרשמיים; עוד לא נבדקה בהרצה.

צור docker-compose

רכיבים

מה כל רכיב צריך בכל רמת עומס, לפני baseline ו-headroom.

vCPU / GiB RAM / GiB דיסק
רכיבקלבינוניכבדמקורות
Jellyfin (server, web client and FFmpeg) (app)2.5 / 2 / 244.5 / 3.5 / 587 / 6 / 140[3][12][13][14][21]
איך ההערכות מחושבות
  • Jellyfin (server, web client and FFmpeg) · קל: ‏direct play כמעט לא עולה כלום (לפי התיעוד); התיעוד לא נותן נתון CPU להזרמה, ולכן הנחה של 2 vCPU להמרת תוכנה של 1080p ‏SDR ועוד 0.5 לשרת ולסריקות. ‏RAM: ‏1 GiB לשרת, ‏0.5 GiB ל-FFmpeg ו-cache קטן של הספרייה; ה-4–8 GB שבתיעוד הם לכל המכונה. Disk: ‏image של 753,959,538 B × 3 ‏(2.11 GiB) ‏→ 2.25, ועוד 5 GiB מטא-דאטה, ועוד כלל ה-cache: ‏2 הזרמות × הנחה של 8 GiB לקובץ הגדול ביותר (16), מעוגל ל-24 GiB.
  • Jellyfin (server, web client and FFmpeg) · בינוני: ‏2 המרות תוכנה × הנחה של 2 vCPU, ועוד 0.5 לשרת, ל-direct play ולסריקות. ‏RAM: ‏1 GiB לשרת, ‏2 × 0.5 GiB ל-FFmpeg ועוד 1.5 GiB, כי מאז 10.11 המטא-דאטה נשמרת ב-RAM עד גודל מסד הנתונים. Disk: ‏2.25 GiB ל-image, ‏15 GiB מטא-דאטה (הקצה התחתון של 10–100 GB שהתיעוד נותן לספרייה בינונית) ועוד 4 הזרמות × הנחה של 10 GiB לקובץ הגדול ביותר (40), מעוגל ל-58 GiB.
  • Jellyfin (server, web client and FFmpeg) · כבד: ‏3 המרות תוכנה × הנחה של 2 vCPU, ועוד 1 לשרת, ל-5 הזרמות direct play ולסריקות ארוכות. ‏tone-mapping של HDR על ה-CPU לא נכלל: לפי התיעוד גם Ryzen 9 5950X עלול לא לעמוד בהזרמה אחת. ‏RAM: ‏1 GiB לשרת, ‏3 × 0.5 GiB ל-FFmpeg ו-3.5 GiB ל-cache של המטא-דאטה, בתוך המכונה של 8 GB שבתיעוד. Disk: ‏2.25 GiB ל-image, ‏40 GiB מטא-דאטה ועוד 8 הזרמות × הנחה של 12 GiB לקובץ הגדול ביותר (96), מעוגל ל-140 GiB.

פורטים

פורטים ציבוריים נועדו לגישה מחוץ ל-stack, בדרך כלל דרך reverse proxy; פורטים פנימיים נשארים ברשת של ה-stack עצמו.

רכיבפורטחשיפהשימושמקורות
Jellyfin (server, web client and FFmpeg)8096/tcpציבורי, דרך proxyWeb client, HTTP API and streaming for every client app (HTTP; put behind TLS)[2][6]

כל הפורטים בקטלוג, עם התנגשויות בין אפליקציות

משתמש והרשאות (UID/GID)

המשתמש שהתהליך של כל קונטיינר רץ תחתיו, והנתיבים שהוא כותב אליהם. ‏bind mount לאחד הנתיבים האלה חייב להיות ניתן לכתיבה על ידי ה-UID:GID הזה.

רכיבUID:GIDמשתמשמתחיל כ-rootכותב אלמקורות
Jellyfin (server, web client and FFmpeg)נגזר0:0rootלא/config/cache/media[1][2][3]
  • Jellyfin (server, web client and FFmpeg): ה-Dockerfile לא מגדיר USER ומפעיל את ‎/jellyfin/jellyfin ישירות, ולכן התהליך רץ כ-root; ‎/config ו-‎/cache נוצרים עם הרשאות 777, כך שגם user: uid:gid האופציונלי מהתיעוד עובד. למדיה נכתב משהו רק כששמירת NFO או תמונות בתיקיות המדיה פעילה; אחרת התיעוד מעגן את הספריות לקריאה בלבד.

צמיחת אחסון

בכמה הנתונים של כל רכיב גדלים בחודש בכל רמת עומס, מעבר לדיסק שבפרופיל. ערך שמסומן ״הנחה״ הוא הנחה מוצהרת של ANAROQ ולא מספר מהמקורות; ההערות מפרטות על מה היא נשענת.

GiB לחודש
רכיבקלבינוניכבדמקורות
Jellyfin (server, web client and FFmpeg)הנחה0.4881.9534.883[14][16][17]
על מה מספרי הצמיחה נשענים
  • Jellyfin (server, web client and FFmpeg): פריטים חדשים × הנחה של 10 MiB לפריט ב-‎/config (פוסטרים ותמונות רקע, תמונות של אנשים, תמונות פרקים כשהן פעילות, שורות במסד הנתונים): ‏50, ‏200 ו-500 פריטים בחודש. קובצי המדיה עצמם לא נספרים. את ‎/cache מרוקנות המשימות המתוזמנות Clear Cache ו-Clear Transcodes; גם הגיבויים המובנים נשמרים ב-‎/config.

שדרוג וחזרה לאחור

איך עוברים לגרסה חדשה בבטחה, ואיך חוזרים אחורה אם משהו נכשל.

קודם גיבוי

ל-Jellyfin אין downgrade: עצרו אותו והעתיקו את כל ה-volume של config (מסד נתונים, מטא-דאטה, הגדרות ו-plugins). אפשר לדלג על ה-volume של cache; המדיה מגובה בנפרד. [15][20]

שלבי השדרוג

  1. קראו את ה-TL;DR בפוסט השחרור של כל גרסה ראשית בדרך: ‏12.0 דורש קודם 10.10.7 או כל 10.11.x, נכשל על שמות משתמש שנבדלים רק באותיות גדולות וקטנות, ולא טוען plugins של צד שלישי שנבנו ל-10.11 (הסירו אותם קודם). [20][21]
  2. עצרו את Jellyfin וקחו עותק מלא של ה-volume של config, ואז שנו את ה-tag המוצמד ל-packaging build החדש, והריצו docker compose pull ו-docker compose up -d. ה-migrations רצים בהפעלה הראשונה ויכולים להימשך שעות בספריות גדולות: אל תעצרו את הקונטיינר; עקבו אחרי docker compose logs -f jellyfin. [4][15][20][21]
  3. אחרי שדרוג ראשי הריצו סריקה מלאה של הספרייה (חובה אחרי 12.0: גרסאות שקובצו אוטומטית נבנות מחדש מהקבצים) ורעננו את ה-web client בכוח (hard refresh). [20][21]

חזרה לאחור

עצרו את הקונטיינר, שחזרו את ה-volume של config מהעותק שנלקח לפני השדרוג, הצמידו את ה-tag הקודם והפעילו שוב. ה-migrations כותבים מחדש את מסד הנתונים בהפעלה הראשונה, ולכן ה-image הישן לבדו לא יכול לקרוא אותו. [15][20]

שינויים שוברים ידועים

  • בגרסה 12.0: מספרי הגרסה מוותרים על ה-10 שבהתחלה (12.0, ‏12.1, ‏12.2), ולכן הצמדת tags וסקריפטים משתנים. ה-schema נכתב מחדש בהפעלה הראשונה; רק 10.10.7 או 10.11.x יכולים לשדרג; שמות משתמש הופכים ללא תלויי רישיות; נדרשת סריקה מלאה; plugins של 10.11 לא נטענים; הנתיבים הישנים ‎/emby/‎ ו-‎/mediabrowser/‎ ושיטת ההתחברות המיושנת הוסרו. [5][20]
  • בגרסה 10.11.0: מסד הנתונים של הספרייה עבר מ-library.db אל jellyfin.db ‏(EF Core) עם migrations שיכולים לרוץ שעות; רק 10.10.7 יכול לשדרג; ‏ARM של 32 ביט כבר לא נתמך ומעבדי x86 צריכים SSE4.1; המטא-דאטה נשמרת ב-RAM עד גודל מסד הנתונים, ולכן צריכת הזיכרון עולה. [12][21]

מגבלות

  • בתבנית אין GPU, ולכן כל המרה רצה על ה-CPU. התיעוד ממליץ לא להפעיל שרת בלי GPU: פענוח HEVC, ‏VP9 ו-AV1 ו-tone-mapping מ-HDR ל-SDR יכולים לעבור את מה ש-CPU אחד של desktop עושה בזמן אמת. האצת חומרה דורשת להוסיף ידנית שורות devices ו-group_add. [11][12][13]
  • תכננו דיסק ל-cache של ההמרות: הכלל בתיעוד הוא קובץ המדיה הגדול ביותר × מספר ההזרמות במקביל, על SSD ליד מסד הנתונים. השאירו את ‎/config בדיסק מקומי, לא על NFS או SMB; ספריות ברשת צריכות להיות מעוגנות במארח, ואם הן לא זמינות, משימות מתוזמנות עלולות למחוק פריטים ורשימות השמעה. [12][14][16]
  • גילוי אוטומטי של לקוחות (7359/udp) ו-DLNA ‏(1900/udp עם host networking) עובדים רק ברשת המקומית ואינם חלק מהתבנית: האפליקציות מתחברות כשמזינים בהן את כתובת השרת. [6][9]

אבטחה

  • המבקר הראשון בשרת חדש מריץ את אשף ההתקנה ויוצר את חשבון המנהל. סיימו את האשף מיד אחרי ההפעלה הראשונה, לפני שהדומיין מפנה לשרת. [18][20]
  • ‏Jellyfin לא נועד לעמוד מול האינטרנט ישירות: הגישו אותו ב-HTTPS דרך reverse proxy, והזינו את הכתובת של ה-proxy תחת Networking > Known Proxies. בלי זה Jellyfin מתעלם מ-X-Forwarded-For, רואה כל לקוח ככתובת ה-proxy, ומגבלות הגישה מרחוק לא חלות. [6][7][12]
  • לקוחות שולחים לפעמים api_key בתוך ה-URL, ולכן אל תשמרו URLs מלאים בלוג הגישה של ה-proxy. הקונטיינר רץ כ-root; האפשרות user: uid:gid מהתיעוד לא נמצאת בתבנית. [1][7]

גיבוי

  • כל מה ש-Jellyfin מחזיק נמצא ב-volume של config: עצרו את הקונטיינר והעתיקו אותו, או השתמשו ב-Dashboard > Backups ‏(מאז 10.11) לקובץ zip בזמן ריצה. גיבויים מובנים נכתבים ל-‎/config/data/backups, דורשים 5 GB פנויים ומשוחזרים רק במערכת שיצרה אותם, ולכן העתיקו אותם מחוץ לשרת. [15]
  • את ה-volume של cache אפשר לבנות מחדש, ומאז 12.0 הוא מסומן ב-CACHEDIR.tag כדי שכלי גיבוי ידלגו עליו. גבו את ספריית המדיה בנפרד: הגיבוי של Jellyfin מחזיק מטא-דאטה, לא את הקבצים. [15][20]

גרסה אחרונה

הגרסה האחרונה של הפרויקט
Jellyfin 12.2 [4][22]
הפרופיל נבדק מול

Jellyfin 12.2

הפרופיל נבדק מול הגרסה האחרונה.

נבדק ב-
14 באוק׳ 2026
מצב
נבדק ב-90 הימים האחרונים
איפה הגרסאות מתפרסמות
תגיות ב-Docker Hub

הגרסאות האחרונות של כל האפליקציות

גרסה

סטטוס הפרופיל
פורסם
נבדק מול גרסה
Jellyfin 12.2
גרסת הפרופיל
1.0.0
המספרים אומתו
14 באוק׳ 2026
גרסת הקטלוג
2026.10.10
מדיניות sizing
2026.10.0
קובץ Compose
לא אומת
האתר הרשמי
jellyfin.org

מקורות

  1. Jellyfin Docs: Container (8096/tcp, 7359/udp, /config, /cache, media bind mounts, optional user and PublishedServerUrl; volumes jellyfin-config/-cache; tag scheme) (Compose רשמי · נקרא 14 באוק׳ 2026)
  2. jellyfin-packaging: docker/Dockerfile at v12.2-202610051851 (curl, no USER, /config and /cache mode 777, EXPOSE 8096, HEALTHCHECK curl http://localhost:8096/health) (מאגר רשמי · נקרא 14 באוק׳ 2026)
  3. Registry manifest and config of jellyfin/jellyfin:12.2.20261005-225228 (linux/amd64): 753,959,538 B compressed; no User; Healthcheck every 30 s, start period 10 s (מדידה · נקרא 14 באוק׳ 2026)
  4. Docker Hub tags of jellyfin/jellyfin (newest stable 12.2 = packaging build 12.2.20261005-225228, pushed 2026-10-05; no 12.2.0 tag; 12.1 and 12.0 before it) (מאגר רשמי · נקרא 14 באוק׳ 2026)
  5. Jellyfin Docs: Release procedure (since Jellyfin 12 releases are numbered X.Y; X breaks the HTTP or plugin APIs, Y is a hotfix) (תיעוד רשמי · נקרא 14 באוק׳ 2026)
  6. Jellyfin Docs: Networking (8096/tcp HTTP, 8920/tcp HTTPS off by default, 7359/udp client discovery on the local subnet only; HTTPS best terminated at a reverse proxy) (תיעוד רשמי · נקרא 14 באוק׳ 2026)
  7. Jellyfin Docs: Reverse proxy (set the proxy's address under Known Proxies or forwarded headers are discarded and remote-access limits fail; WebSockets; api_key can appear in logged URLs) (תיעוד רשמי · נקרא 14 באוק׳ 2026)
  8. Jellyfin Docs: Caddy (recommended reverse proxy; reverse_proxy to port 8096 with automatic HTTPS) (תיעוד רשמי · נקרא 14 באוק׳ 2026)
  9. Jellyfin Docs: DLNA (a plugin since 10.9; needs 1900/udp and Docker host networking; local subnet only) (תיעוד רשמי · נקרא 14 באוק׳ 2026)
  10. Jellyfin Docs: Configuration (JELLYFIN_ environment prefix; PublishedServerUrl is the server URL sent in UDP auto-discovery replies; SQLite jellyfin.db in the data directory) (תיעוד רשמי · נקרא 14 באוק׳ 2026)
  11. Jellyfin Docs: Intel QSV/VA-API (official Docker image ships the drivers; needs devices /dev/dri/renderD128 and group_add with the host's render group id) (תיעוד רשמי · נקרא 14 באוק׳ 2026)
  12. Jellyfin Docs: Hardware selection (8 GB RAM, 4 GB on headless Linux; 100 GB SSD; cache = largest file × streams; GPU advised; SSE4.1 since 10.11; not for direct exposure) (תיעוד רשמי · נקרא 14 באוק׳ 2026)
  13. Jellyfin Docs: Transcoding (direct play puts almost no load on the server; remux, direct stream and transcode in rising order; software HDR tone-mapping may not reach real time) (תיעוד רשמי · נקרא 14 באוק׳ 2026)
  14. Jellyfin Docs: Storage (database of a moderate library 10 to 100 GB; transcodes about the source size; database off network storage; offline media can be dropped) (תיעוד רשמי · נקרא 14 באוק׳ 2026)
  15. Jellyfin Docs: Backup and restore (no downgrade mechanism; built-in backup since 10.11 to /config/data/backups, needs 5 GB free, same system only; manual backup: stop Jellyfin, copy /config) (תיעוד רשמי · נקרא 14 באוק׳ 2026)
  16. Jellyfin Docs: Tasks (scheduled Clear Cache Folder, Clear Transcodes Folder, Extract Chapter Images, Optimize Database; Clean up collections and playlists drops playlists when media is unavailable) (תיעוד רשמי · נקרא 14 באוק׳ 2026)
  17. Jellyfin Docs: Chapter images (enabled per library; stored in the metadata directory inside the config directory) (תיעוד רשמי · נקרא 14 באוק׳ 2026)
  18. Jellyfin Docs: Setup wizard (language, then the administrator account, libraries, metadata language and remote access) (תיעוד רשמי · נקרא 14 באוק׳ 2026)
  19. Jellyfin Docs: Commercial support policy (volunteer project that will not commercialize the software itself) (תיעוד רשמי · נקרא 14 באוק׳ 2026)
  20. Jellyfin blog: Jellyfin 12.0 (X.Y numbers; schema rewritten, backup only way back; from 10.10.7/10.11.x; case-insensitive usernames; full scan; 10.11 plugins fail; /emby/ removed) (Release notes · נקרא 14 באוק׳ 2026)
  21. Jellyfin blog: Jellyfin 10.11.0 (library DB to EF Core jellyfin.db, migrations up to hours; from 10.10.7; no 32-bit ARM; metadata cached in RAM up to DB size; built-in backup) (Release notes · נקרא 14 באוק׳ 2026)
  22. repo.jellyfin.org: stable server builds (v10.11.11, v12.0, v12.1, v12.2; newest v12.2) (מאגר רשמי · נקרא 14 באוק׳ 2026)
  23. jellyfin repository: LICENSE at v12.2 (GNU GPL v2) (מאגר רשמי · נקרא 14 באוק׳ 2026)

כל אפליקציות ה-self-hosted