Jellyfin is an open-source media server alternative to Plex that streams your personal movies, shows, and music with free hardware transcoding.
Maintaining a growing collection of movies and shows across multiple family devices quickly runs into subscription walls when commercial media servers gate hardware transcoding behind paid passes. Jellyfin delivers a streaming platform that organizes personal video, audio, and photos without account fees, tracking telemetry, or remote authentication servers. Every capability remains accessible out of the box on standard home server hardware.
Plex restricts hardware-accelerated transcoding behind its Plex Pass subscription, requiring recurring fees or a lifetime pass to use GPU encoding for video conversions. Jellyfin includes full hardware acceleration at zero cost, letting administrators route transcoding through Intel QuickSync, NVIDIA NVENC, AMD AMF, or VAAPI directly. Plex also enforces a paid playback activation on its mobile apps, whereas Jellyfin provides free client applications across every supported platform.
Their operational models diverge just as sharply. Plex routes authentication and remote discovery through centralized cloud servers; when those servers suffer an outage, local streaming can stall unless subnet bypasses were configured beforehand. Jellyfin authenticates entirely on the local network. In exchange for that independence, Jellyfin offers no managed cloud relay: streaming outside the home requires setting up a reverse proxy with TLS certificates or a VPN tunnel. Plex also pushes ad-supported FAST channels and storefronts into its default interface, whereas Jellyfin displays only user-owned media.
Jellyfin vs Plex — which media server should I choose? Choose Jellyfin if you want an open media server with free hardware transcoding, local authentication, and zero third-party ads. Choose Plex if you need turnkey remote streaming without network configuration and polished apps on commercial smart TVs.
Is Jellyfin completely free to use? Yes, all server features, client applications, and transcoding capabilities are free with no paid tiers. Your only costs are the underlying hardware and storage drives.
Can I stream from Jellyfin outside my home network? Yes, but external access requires manual setup since Jellyfin operates no central relay servers. Administrators typically expose it through a reverse proxy with TLS or connect over a private VPN.
Jellyfin is the leading choice for homelab operators who value complete data ownership, local privacy, and unrestricted transcoding over proprietary cloud convenience. With active development continuing through recent releases and a GPL-2.0 license that prevents commercial lock-in, it protects your media library from unexpected fees and remote outages. If you can manage a reverse proxy or VPN for remote playback, Jellyfin handles media streaming without compromise.
Commands from the official package registries. Each package is matched to Jellyfin through the registry's own link to its source code or website.
brew install --cask jellyfinflatpak install flathub org.jellyfin.JellyfinServerWe started this exact setup from scratch in a clean Linux machine on Oct 9, 2026 and checked it through Jellyfin's own API: every check passed. Recipes are re-checked regularly and removed if they stop working.
mkdir -p jellyfin && cd jellyfin
curl -fsSL https://open-source.store/tools/jellyfin/compose.yml -o compose.ymlcat > .env <<EOF
JELLYFIN_PUBLISHED_URL=http://localhost:8096
ADMIN_PASSWORD=$(openssl rand -hex 12)
EOFJELLYFIN_PUBLISHED_URL — Address clients on your network use to reach the server.ADMIN_PASSWORD — Password for the first admin account created by the setup wizard. Generated above; keep it secret.docker compose up -dservices:
jellyfin:
image: jellyfin/jellyfin:12.2.20261005-225228
ports:
- "8096:8096/tcp"
volumes:
- jellyfin-config:/config
- jellyfin-cache:/cache
- ./media:/media:ro
restart: unless-stopped
environment:
- JELLYFIN_PublishedServerUrl=${JELLYFIN_PUBLISHED_URL}
volumes:
jellyfin-config:
jellyfin-cache:
Go, gRPC and Protobuf done right, LLM agents in production, and the hard parts of shipping a first product.
Show that Jellyfin is listed as an open-source alternative. Paste into your README:
Ubuntu 24.04 · Apple container, Docker 29.1.3, Compose 2.40.3+ds1-0ubuntu1~24.04.1. Images pulled in 69 s: jellyfin/jellyfin:12.2.20261005-225228.
Based on the upstream setup. Official compose from the container docs. Image pinned to 12.2.20261005-225228, config and cache in named volumes, media read from ./media, UDP discovery port and optional font mount dropped.
jellyfin-1 | 2026-10-09T10:07:28.038156212Z [10:07:28.038] [INF] [4] InternalDatabaseMigration: Perform migration 20260116114245_AddLatestItemsDateCreatedIndexes
jellyfin-1 | 2026-10-09T10:07:28.047538670Z [10:07:28.047] [INF] [4] InternalDatabaseMigration: Migration 20260116114245_AddLatestItemsDateCreatedIndexes was successfully applied
jellyfin-1 | 2026-10-09T10:07:28.048058087Z [10:07:28.048] [INF] [4] InternalDatabaseMigration: Perform migration 20260118182305_AddIndicesToImageInfo
jellyfin-1 | 2026-10-09T10:07:28.056258420Z [10:07:28.056] [INF] [4] InternalDatabaseMigration: Migration 20260118182305_AddIndicesToImageInfo was successfully applied
jellyfin-1 | 2026-10-09T10:07:28.056731087Z [10:07:28.056] [INF] [4] InternalDatabaseMigration: Perform migration 20260130232147_AddBaseItemNameIndex
jellyfin-1 | 2026-10-09T10:07:28.065672003Z [10:07:28.065] [INF] [4] InternalDatabaseMigration: Migration 20260130232147_AddBaseItemNameIndex was successfully applied
jellyfin-1 | 2026-10-09T10:07:28.066333795Z [10:07:28.066] [INF] [4] InternalDatabaseMigration: Perform migration 20260206224832_IndexOptimizations
jellyfin-1 | 2026-10-09T10:07:28.075697878Z [10:07:28.075] [INF] [4] InternalDatabaseMigration: Migration 20260206224832_IndexOptimizations was successfully applied
jellyfin-1 | 2026-10-09T10:07:28.076220378Z [10:07:28.076] [INF] [4] InternalDatabaseMigration: Perform migration 20260215201634_ChangePrimaryVersionIdToGuid
jellyfin-1 | 2026-10-09T10:07:28.085987545Z [10:07:28.085] [INF] [4] InternalDatabaseMigration: Migration 20260215201634_ChangePrimaryVersionIdToGuid was successfully applied
jellyfin-1 | 2026-10-09T10:07:28.086546087Z [10:07:28.086] [INF] [4] InternalDatabaseMigration: Perform migration 20260308123920_AddTypeCleanNameIndex
jellyfin-1 | 2026-10-09T10:07:28.094906837Z [10:07:28.094] [INF] [4] InternalDatabaseMigration: Migration 20260308123920_AddTypeCleanNameIndex was successfully applied
jellyfin-1 | 2026-10-09T10:07:28.095390253Z [10:07:28.095] [INF] [4] InternalDatabaseMigration: Perform migration 20260504075755_AddPartialIndexForItemCounts
jellyfin-1 | 2026-10-09T10:07:28.103457503Z [10:07:28.103] [INF] [4] InternalDatabaseMigration: Migration 20260504075755_AddPartialIndexForItemCounts was successfully applied
jellyfin-1 | 2026-10-09T10:07:28.103885462Z [10:07:28.103] [INF] [4] InternalDatabaseMigration: Perform migration 20260522092303_AddNormalizedUsername
jellyfin-1 | 2026-10-09T10:07:28.113196128Z [10:07:28.113] [INF] [4] InternalDatabaseMigration: Migration 20260522092303_AddNormalizedUsername was successfully applied
jellyfin-1 | 2026-10-09T10:07:28.113745253Z [10:07:28.113] [INF] [4] InternalDatabaseMigration: Perform migration 20260524120336_AddUniqueNormalizedUsernameIndex
jellyfin-1 | 2026-10-09T10:07:28.121704170Z [10:07:28.121] [INF] [4] InternalDatabaseMigration: Migration 20260524120336_AddUniqueNormalizedUsernameIndex was successfully applied
jellyfin-1 | 2026-10-09T10:07:28.122235253Z [10:07:28.122] [INF] [4] InternalDatabaseMigration: Perform migration 20260723111547_AllowDuplicatePlaylistChildren
jellyfin-1 | 2026-10-09T10:07:28.136520420Z [10:07:28.136] [INF] [4] InternalDatabaseMigration: Migration 20260723111547_AllowDuplicatePlaylistChildren was successfully applied
jellyfin-1 | 2026-10-09T10:07:28.136988587Z [10:07:28.136] [INF] [4] InternalDatabaseMigration: Perform migration 20260724185102_AddPrimaryVersionIdIndex
jellyfin-1 | 2026-10-09T10:07:28.146485587Z [10:07:28.146] [INF] [4] InternalDatabaseMigration: Migration 20260724185102_AddPrimaryVersionIdIndex was successfully applied
jellyfin-1 | 2026-10-09T10:07:28.147007045Z [10:07:28.146] [INF] [4] InternalDatabaseMigration: Perform migration 20260728170000_AddPeopleNameLowerIndex
jellyfin-1 | 2026-10-09T10:07:28.155143503Z [10:07:28.155] [INF] [4] InternalDatabaseMigration: Migration 20260728170000_AddPeopleNameLowerIndex was successfully applied
jellyfin-1 | 2026-10-09T10:07:28.155615295Z [10:07:28.155] [INF] [4] InternalDatabaseMigration: Perform migration 20260728182152_AddPeopleItemMapCoveringIndex
jellyfin-1 | 2026-10-09T10:07:28.163682837Z [10:07:28.163] [INF] [4] InternalDatabaseMigration: Migration 20260728182152_AddPeopleItemMapCoveringIndex was successfully applied
jellyfin-1 | 2026-10-09T10:07:28.164239003Z [10:07:28.164] [INF] [4] InternalDatabaseMigration: Perform migration 20260812050902_AddMediaStreamFilterIndex
jellyfin-1 | 2026-10-09T10:07:28.172568087Z [10:07:28.172] [INF] [4] InternalDatabaseMigration: Migration 20260812050902_AddMediaStreamFilterIndex was successfully applied
jellyfin-1 | 2026-10-09T10:07:28.173078462Z [10:07:28.173] [INF] [4] InternalDatabaseMigration: Perform migration 20260815063607_RemoveOrphanedUserPermissionsAndPreferences
jellyfin-1 | 2026-10-09T10:07:28.196939212Z [10:07:28.196] [INF] [4] InternalDatabaseMigration: Migration 20260815063607_RemoveOrphanedUserPermissionsAndPreferences was successfully applied
jellyfin-1 | 2026-10-09T10:07:28.197500503Z [10:07:28.197] [INF] [4] InternalDatabaseMigration: Perform migration 20261002210711_MakeOwnerIdIndexesPartial
jellyfin-1 | 2026-10-09T10:07:28.205782837Z [10:07:28.205] [INF] [4] InternalDatabaseMigration: Migration 20261002210711_MakeOwnerIdIndexesPartial was successfully applied
jellyfin-1 | 2026-10-09T10:07:28.247818003Z [10:07:28.247] [INF] [4] Emby.Server.Implementations.AppBase.BaseConfigurationManager: Saving system configuration
jellyfin-1 | 2026-10-09T10:07:28.247976378Z [10:07:28.247] [INF] [4] Emby.Server.Implementations.AppBase.BaseConfigurationManager: Setting cache path: /cache
jellyfin-1 | 2026-10-09T10:07:28.249490962Z [10:07:28.249] [INF] [4] Emby.Server.Implementations.Plugins.PluginManager: Loaded plugin: TMDb 12.2.0.0
jellyfin-1 | 2026-10-09T10:07:28.249632920Z [10:07:28.249] [INF] [4] Emby.Server.Implementations.Plugins.PluginManager: Loaded plugin: Studio Images 12.2.0.0
jellyfin-1 | 2026-10-09T10:07:28.249686295Z [10:07:28.249] [INF] [4] Emby.Server.Implementations.Plugins.PluginManager: Loaded plugin: OMDb 12.2.0.0
jellyfin-1 | 2026-10-09T10:07:28.253834962Z [10:07:28.253] [INF] [4] Emby.Server.Implementations.Plugins.PluginManager: Loaded plugin: MusicBrainz 12.2.0.0
jellyfin-1 | 2026-10-09T10:07:28.253980003Z [10:07:28.253] [INF] [4] Emby.Server.Implementations.Plugins.PluginManager: Loaded plugin: ListenBrainz Similarity Provider 12.2.0.0
jellyfin-1 | 2026-10-09T10:07:28.254042378Z [10:07:28.254] [INF] [4] Emby.Server.Implementations.Plugins.PluginManager: Loaded plugin: AudioDB 12.2.0.0
jellyfin-1 | 2026-10-09T10:07:28.267385170Z [10:07:28.267] [INF] [4] Emby.Server.Implementations.Library.Search.SearchManager: Registered 0 external search providers: . Fallback providers: Database (priority 100)
jellyfin-1 | 2026-10-09T10:07:28.270833462Z [10:07:28.270] [INF] [4] Jellyfin.Server.Migrations.JellyfinMigrationService: There are 5 migrations for stage AppInitialisation.
jellyfin-1 | 2026-10-09T10:07:28.270888004Z [10:07:28.270] [INF] [4] InternalCodeMigration: Perform migration 20250420090000_AddDefaultPluginRepository
jellyfin-1 | 2026-10-09T10:07:28.271611254Z [10:07:28.271] [INF] [4] Emby.Server.Implementations.AppBase.BaseConfigurationManager: Saving system configuration
jellyfin-1 | 2026-10-09T10:07:28.271864962Z [10:07:28.271] [INF] [4] Emby.Server.Implementations.AppBase.BaseConfigurationManager: Setting cache path: /cache
jellyfin-1 | 2026-10-09T10:07:28.272104545Z [10:07:28.272] [INF] [4] InternalCodeMigration: Migration 20250420090000_AddDefaultPluginRepository was successfully applied
jellyfin-1 | 2026-10-09T10:07:28.272932545Z [10:07:28.272] [INF] [4] InternalCodeMigration: Perform migration 20250420110000_ReaddDefaultPluginRepository
jellyfin-1 | 2026-10-09T10:07:28.273117337Z [10:07:28.273] [INF] [4] InternalCodeMigration: Migration 20250420110000_ReaddDefaultPluginRepository was successfully applied
jellyfin-1 | 2026-10-09T10:07:28.273855420Z [10:07:28.273] [INF] [4] InternalCodeMigration: Perform migration 20250420160000_AddDefaultCastReceivers
jellyfin-1 | 2026-10-09T10:07:28.274090920Z [10:07:28.274] [INF] [4] Emby.Server.Implementations.AppBase.BaseConfigurationManager: Saving system configuration
jellyfin-1 | 2026-10-09T10:07:28.274257837Z [10:07:28.274] [INF] [4] Emby.Server.Implementations.AppBase.BaseConfigurationManager: Setting cache path: /cache
jellyfin-1 | 2026-10-09T10:07:28.274366254Z [10:07:28.274] [INF] [4] InternalCodeMigration: Migration 20250420160000_AddDefaultCastReceivers was successfully applied
jellyfin-1 | 2026-10-09T10:07:28.275064129Z [10:07:28.275] [INF] [4] InternalCodeMigration: Perform migration 20250420170000_UpdateDefaultPluginRepository
jellyfin-1 | 2026-10-09T10:07:28.275203629Z [10:07:28.275] [INF] [4] Emby.Server.Implementations.AppBase.BaseConfigurationManager: Saving system configuration
jellyfin-1 | 2026-10-09T10:07:28.275379045Z [10:07:28.275] [INF] [4] Emby.Server.Implementations.AppBase.BaseConfigurationManager: Setting cache path: /cache
jellyfin-1 | 2026-10-09T10:07:28.275530587Z [10:07:28.275] [INF] [4] InternalCodeMigration: Migration 20250420170000_UpdateDefaultPluginRepository was successfully applied
jellyfin-1 | 2026-10-09T10:07:28.276324462Z [10:07:28.276] [INF] [4] InternalCodeMigration: Perform migration 20250420230000_MoveTrickplayFiles
jellyfin-1 | 2026-10-09T10:07:28.455873629Z [10:07:28.455] [INF] [4] Jellyfin.Server.Migrations.Routines.MoveTrickplayFiles: Checked: 5000 - Moved: 0 - Time: 00:00:00.1787694
jellyfin-1 | 2026-10-09T10:07:28.455882795Z [10:07:28.455] [INF] [4] Jellyfin.Server.Migrations.Routines.MoveTrickplayFiles: Moved 0 items in 00:00:00.1789428
jellyfin-1 | 2026-10-09T10:07:28.455943545Z [10:07:28.455] [INF] [4] InternalCodeMigration: Migration 20250420230000_MoveTrickplayFiles was successfully applied
jellyfin-1 | 2026-10-09T10:07:28.457145754Z [10:07:28.457] [INF] [4] Main: Attempt to cleanup JellyfinDb backup.
jellyfin-1 | 2026-10-09T10:07:28.457373754Z [10:07:28.457] [INF] [4] Main: Migrations have been applied, optimizing the database... This might take a while
jellyfin-1 | 2026-10-09T10:07:28.473304545Z [10:07:28.473] [INF] [4] Jellyfin.Database.Providers.Sqlite.SqliteDatabaseProvider: Not analyzing jellyfin.db, the library holds no items yet
jellyfin-1 | 2026-10-09T10:07:28.474942670Z [10:07:28.474] [INF] [4] Jellyfin.Database.Providers.Sqlite.SqliteDatabaseProvider: jellyfin.db optimized successfully!
jellyfin-1 | 2026-10-09T10:07:28.486851587Z [10:07:28.486] [INF] [11] Main: Kestrel is listening on 0.0.0.0
jellyfin-1 | 2026-10-09T10:07:28.495069587Z [10:07:28.494] [WRN] [11] Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager: No XML encryptor configured. Key {9aa2e103-734e-4e8c-99ec-9f6045653872} may be persisted to storage in unencrypted form.
jellyfin-1 | 2026-10-09T10:07:28.673510254Z [10:07:28.673] [WRN] [11] Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware: The WebRootPath was not found: /wwwroot. Static files may be unavailable.
jellyfin-1 | 2026-10-09T10:07:28.844358837Z [10:07:28.844] [INF] [11] Emby.Server.Implementations.ApplicationHost: Running startup tasks
jellyfin-1 | 2026-10-09T10:07:28.863658587Z [10:07:28.863] [INF] [11] Emby.Server.Implementations.ScheduledTasks.TaskManager: Daily trigger for Generate Trickplay Images set to fire at 2026-10-10 03:00:00.000 +00:00, which is 16:52:31.1365177 from now.
jellyfin-1 | 2026-10-09T10:07:28.864497379Z [10:07:28.864] [INF] [11] Emby.Server.Implementations.ScheduledTasks.TaskManager: Daily trigger for Extract Chapter Images set to fire at 2026-10-10 02:00:00.000 +00:00, which is 15:52:31.1355845 from now.
jellyfin-1 | 2026-10-09T10:07:28.879208004Z [10:07:28.879] [INF] [11] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Found ffmpeg version 8.1.3
jellyfin-1 | 2026-10-09T10:07:28.898680879Z [10:07:28.898] [INF] [11] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Available decoders: ["libdav1d", "av1", "av1_cuvid", "av1_rkmpp", "h264", "h264_rkmpp", "h264_cuvid", "hevc", "hevc_rkmpp", "hevc_cuvid", "mpeg1_rkmpp", "mpeg2video", "mpeg2_rkmpp", "mpeg2_cuvid", "mpeg4", "mpeg4_rkmpp", "mpeg4_cuvid", "msmpeg4", "vc1_cuvid", "vp8", "vp8_rkmpp", "libvpx", "vp8_cuvid", "vp9", "vp9_rkmpp", "libvpx-vp9", "vp9_cuvid", "aac", "ac3", "ac4", "dca", "flac", "mp3", "truehd"]
jellyfin-1 | 2026-10-09T10:07:28.905147379Z [10:07:28.905] [INF] [11] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Available encoders: ["libsvtav1", "av1_nvenc", "av1_vaapi", "h264_rkmpp", "libx264", "h264_nvenc", "h264_v4l2m2m", "h264_vaapi", "hevc_rkmpp", "libx265", "hevc_nvenc", "hevc_vaapi", "mjpeg_rkmpp", "mjpeg_vaapi", "aac", "libfdk_aac", "ac3", "alac", "dca", "flac", "libmp3lame", "libopus", "truehd", "libvorbis", "srt"]
jellyfin-1 | 2026-10-09T10:07:28.912174254Z [10:07:28.912] [INF] [11] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Available filters: ["bwdif_cuda", "bwdif_opencl", "deinterlace_vaapi", "flip_vulkan", "hwupload_cuda", "hwupload_vaapi", "libplacebo", "overlay_opencl", "overlay_rkrga", "overlay_vaapi", "overlay_vulkan", "overlay_cuda", "procamp_vaapi", "scale_cuda", "scale_opencl", "scale_rkrga", "scale_vaapi", "scale_vulkan", "tonemapx", "tonemap_cuda", "tonemap_opencl", "tonemap_vaapi", "transpose_cuda", "transpose_opencl", "transpose_vaapi", "transpose_vulkan", "vpp_rkrga", "yadif_cuda", "yadif_opencl", "zscale", "alphasrc"]
jellyfin-1 | 2026-10-09T10:07:28.994514129Z [10:07:28.994] [INF] [11] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Available hwaccel types: ["cuda", "vaapi", "drm", "opencl", "vulkan", "rkmpp"]
jellyfin-1 | 2026-10-09T10:07:30.556155296Z [10:07:30.556] [INF] [11] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: FFmpeg: /usr/lib/jellyfin-ffmpeg/ffmpeg
jellyfin-1 | 2026-10-09T10:07:30.556731255Z [10:07:30.556] [INF] [11] Emby.Server.Implementations.ApplicationHost: ServerId: 2b896babc1764ede9a18dda7aa94bcf5
jellyfin-1 | 2026-10-09T10:07:30.556736963Z [10:07:30.556] [INF] [11] Emby.Server.Implementations.ApplicationHost: Core startup complete
jellyfin-1 | 2026-10-09T10:07:30.556841880Z [10:07:30.556] [INF] [11] Main: Startup complete 0:00:03.7233848
jellyfin-1 | 2026-10-09T10:07:31.868132214Z [10:07:31.868] [INF] [6] Emby.Server.Implementations.ScheduledTasks.TaskManager: Clean Transcode Directory Completed after 0 minute(s) and 0 seconds
jellyfin-1 | 2026-10-09T10:07:33.082781464Z [10:07:33.081] [INF] [6] Emby.Server.Implementations.AppBase.BaseConfigurationManager: Saving system configuration
jellyfin-1 | 2026-10-09T10:07:33.083349131Z [10:07:33.083] [INF] [6] Emby.Server.Implementations.AppBase.BaseConfigurationManager: Setting cache path: /cache
jellyfin-1 | 2026-10-09T10:07:33.103526006Z [10:07:33.103] [WRN] [4] Jellyfin.Server.Implementations.Users.UserManager: No users, creating one with username root
jellyfin-1 | 2026-10-09T10:07:33.182735798Z [10:07:33.182] [WRN] [4] Microsoft.EntityFrameworkCore.Query: The query uses the 'First'/'FirstOrDefault' operator without 'OrderBy' and filter operators. This may lead to unpredictable results.
jellyfin-1 | 2026-10-09T10:07:33.249890423Z [10:07:33.247] [INF] [4] Emby.Server.Implementations.ScheduledTasks.TaskManager: Update Plugins Completed after 0 minute(s) and 1 seconds
jellyfin-1 | 2026-10-09T10:07:33.320996506Z [10:07:33.320] [INF] [4] Emby.Server.Implementations.AppBase.BaseConfigurationManager: Saving system configuration
jellyfin-1 | 2026-10-09T10:07:33.321214006Z [10:07:33.321] [INF] [4] Emby.Server.Implementations.AppBase.BaseConfigurationManager: Setting cache path: /cache
jellyfin-1 | 2026-10-09T10:07:33.322986381Z [10:07:33.322] [INF] [4] Emby.Server.Implementations.Library.LibraryManager: Validating media library
jellyfin-1 | 2026-10-09T10:07:33.426486589Z [10:07:33.426] [WRN] [4] MediaBrowser.Controller.Entities.BaseItem: Library folder /config/data/playlists is inaccessible or empty, skipping
jellyfin-1 | 2026-10-09T10:07:33.428624756Z [10:07:33.428] [INF] [6] Jellyfin.Server.Implementations.Users.UserManager: Authentication request for admin has succeeded.
jellyfin-1 | 2026-10-09T10:07:33.428630798Z [10:07:33.428] [INF] [6] Emby.Server.Implementations.Session.SessionManager: Current/Max sessions for user admin: 0/0
jellyfin-1 | 2026-10-09T10:07:33.429409798Z [10:07:33.429] [INF] [6] Emby.Server.Implementations.Session.SessionManager: Creating new access token for user a820ca3b-7151-41d2-a3dd-8dec79a070f4
jellyfin-1 | 2026-10-09T10:07:33.440833464Z [10:07:33.440] [WRN] [4] MediaBrowser.Controller.Entities.BaseItem: Library folder /config/data/playlists is inaccessible or empty, skipping
jellyfin-1 | 2026-10-09T10:07:33.442191256Z [10:07:33.442] [INF] [4] Emby.Server.Implementations.Library.LibraryManager: Running 9 post-scan task(s)
jellyfin-1 | 2026-10-09T10:07:33.442256006Z [10:07:33.442] [INF] [4] Emby.Server.Implementations.Library.LibraryManager: Running post-scan task 1/9: SplashscreenPostScanTask
jellyfin-1 | 2026-10-09T10:07:33.456360464Z [10:07:33.456] [INF] [4] Emby.Server.Implementations.Library.LibraryManager: Post-scan task SplashscreenPostScanTask completed after 0 minute(s) and 0 seconds
jellyfin-1 | 2026-10-09T10:07:33.456367714Z [10:07:33.456] [INF] [4] Emby.Server.Implementations.Library.LibraryManager: Running post-scan task 2/9: ArtistsPostScanTask
jellyfin-1 | 2026-10-09T10:07:33.475589923Z [10:07:33.475] [INF] [4] Emby.Server.Implementations.Library.Validators.ArtistsValidator: Refreshed metadata for 0 new artists out of 0 total
jellyfin-1 | 2026-10-09T10:07:33.492406256Z [10:07:33.492] [INF] [4] Emby.Server.Implementations.Library.LibraryManager: Post-scan task ArtistsPostScanTask completed after 0 minute(s) and 0 seconds
jellyfin-1 | 2026-10-09T10:07:33.492464131Z [10:07:33.492] [INF] [4] Emby.Server.Implementations.Library.LibraryManager: Running post-scan task 3/9: CollectionPosterVerifyPostScanTask
jellyfin-1 | 2026-10-09T10:07:33.492770464Z [10:07:33.492] [INF] [4] Emby.Server.Implementations.Library.LibraryManager: Post-scan task CollectionPosterVerifyPostScanTask completed after 0 minute(s) and 0 seconds
jellyfin-1 | 2026-10-09T10:07:33.492792881Z [10:07:33.492] [INF] [4] Emby.Server.Implementations.Library.LibraryManager: Running post-scan task 4/9: CollectionPostScanTask
jellyfin-1 | 2026-10-09T10:07:33.494397881Z [10:07:33.494] [INF] [4] Emby.Server.Implementations.Library.LibraryManager: Post-scan task CollectionPostScanTask completed after 0 minute(s) and 0 seconds
jellyfin-1 | 2026-10-09T10:07:33.494402506Z [10:07:33.494] [INF] [4] Emby.Server.Implementations.Library.LibraryManager: Running post-scan task 5/9: GenresPostScanTask
jellyfin-1 | 2026-10-09T10:07:33.519058256Z [10:07:33.518] [INF] [4] Emby.Server.Implementations.Library.Validators.GenresValidator: Refreshed metadata for 0 new genres out of 0 total
jellyfin-1 | 2026-10-09T10:07:33.536892756Z [10:07:33.536] [INF] [4] Emby.Server.Implementations.Library.LibraryManager: Post-scan task GenresPostScanTask completed after 0 minute(s) and 0 seconds
jellyfin-1 | 2026-10-09T10:07:33.536900631Z [10:07:33.536] [INF] [4] Emby.Server.Implementations.Library.LibraryManager: Running post-scan task 6/9: MusicGenresPostScanTask
jellyfin-1 | 2026-10-09T10:07:33.539878964Z [10:07:33.539] [INF] [4] Emby.Server.Implementations.Library.Validators.MusicGenresValidator: Refreshed metadata for 0 new music genres out of 0 total
jellyfin-1 | 2026-10-09T10:07:33.539905464Z [10:07:33.539] [INF] [4] Emby.Server.Implementations.Library.LibraryManager: Post-scan task MusicGenresPostScanTask completed after 0 minute(s) and 0 seconds
jellyfin-1 | 2026-10-09T10:07:33.539959339Z [10:07:33.539] [INF] [4] Emby.Server.Implementations.Library.LibraryManager: Running post-scan task 7/9: StudiosPostScanTask
jellyfin-1 | 2026-10-09T10:07:33.542970589Z [10:07:33.542] [INF] [4] Emby.Server.Implementations.Library.Validators.StudiosValidator: Refreshed metadata for 0 new studios out of 0 total
jellyfin-1 | 2026-10-09T10:07:33.562814506Z [10:07:33.562] [INF] [4] Emby.Server.Implementations.Library.LibraryManager: Post-scan task StudiosPostScanTask completed after 0 minute(s) and 0 seconds
jellyfin-1 | 2026-10-09T10:07:33.562823423Z [10:07:33.562] [INF] [4] Emby.Server.Implementations.Library.LibraryManager: Running post-scan task 8/9: CleanDatabaseScheduledTask
jellyfin-1 | 2026-10-09T10:07:33.586548381Z [10:07:33.586] [INF] [4] Emby.Server.Implementations.Library.LibraryManager: Post-scan task CleanDatabaseScheduledTask completed after 0 minute(s) and 0 seconds
jellyfin-1 | 2026-10-09T10:07:33.586556048Z [10:07:33.586] [INF] [4] Emby.Server.Implementations.Library.LibraryManager: Running post-scan task 9/9: RefreshDatabaseStatisticsPostScanTask
jellyfin-1 | 2026-10-09T10:07:33.587256089Z [10:07:33.587] [INF] [4] Emby.Server.Implementations.Library.LibraryManager: Post-scan task RefreshDatabaseStatisticsPostScanTask completed after 0 minute(s) and 0 seconds
jellyfin-1 | 2026-10-09T10:07:33.587291423Z [10:07:33.587] [INF] [4] Emby.Server.Implementations.Library.LibraryManager: All post-scan tasks completed after 0 minute(s) and 0 seconds
jellyfin-1 | 2026-10-09T10:07:33.705850381Z [10:07:33.701] [WRN] [6] MediaBrowser.Controller.Entities.BaseItem: Library folder /media is inaccessible or empty, skipping
jellyfin-1 | 2026-10-09T10:07:33.705862506Z [10:07:33.701] [WRN] [6] MediaBrowser.Controller.Entities.BaseItem: Library folder /config/data/playlists is inaccessible or empty, skipping
jellyfin-1 | 2026-10-09T10:07:33.890821423Z [10:07:33.890] [INF] [4] Emby.Server.Implementations.ScheduledTasks.TaskManager: Scan Media Library Completed after 0 minute(s) and 0 seconds