Verification Report · jellyfin v12.2
NOT PUBLISHED
jellyfin-v12.2-20261006-001
verified_at 2026-10-06T03:37:41Z
Immutable inputs
| App version | v12.2 ← release tag v12.2 · source ca0f16eb7c19 |
| Image (exact tag) | jellyfin/jellyfin:12.2 |
| Image digest (linux/amd64) | sha256:da3cd1e48322a35e4b60f3d0a49fca2649e7acce90346dd6e42db777f94e3bbd |
| Index digest | sha256:357724bf0ae27a672c7cbaa899db2d9abeb13dbd8657ccce750258a4c059d037 |
| Pulled as | jellyfin/jellyfin:12.2@sha256:da3cd1e48322a35e4b60f3d0a49fca2649e7acce90346dd6e42db777f94e3bbd via registry-1.docker.io |
| Platform contract | ami-0045d7fc2ad003464 · us-east-1/x86_64 · source=public (plat-us-east-1-x86_64-20261001-001) |
| Config revisions | app e0d620bc1b59 · compose cb6224fdbc5a |
| Release type | new_version — rule4: not semver-comparable to previous 'v12.1' |
Publish gate
| Check | Field | Result |
|---|
| Compose started | checks.compose_started | Passed |
| Container healthy | checks.container_healthy | Passed |
| Health check passed | checks.health_check_passed | Passed |
| Application tests | checks.tests_passed | Passed |
| Screenshots captured | checks.screenshots_generated | Passed |
| Screenshots published | checks.screenshots_uploaded | Failed |
| Report published | checks.report_uploaded | Failed |
| Manifest published | checks.verification_manifest_uploaded | Failed |
| Platform contract valid | checks.required_platform_contract_valid | Passed |
Evidence
| Health probe | HTTP 200 — ready |
| Version assertion | True actual 12.2.0.0 — 匹配(prefix):kind=exec_command 取到 '12.2.0.0',期望 '12.2' |
| Tests | pytest exit=0
.. [100%]
==================================== PASSES ====================================
=========================== short test summary info ============================
PASSED apps/jellyfin/tests/test_wizard.py::test_health_ready
PASSED apps/jellyfin/tests/test_wizard.py::test_wizard_renders
2 passed in 15.02s
|
| Container state | running |
| Duration | 45.1s(2026-10-06T03:36:56Z → 2026-10-06T03:37:40Z) |
Screenshots

wizard · Startup wizard / 初始化向导
Application test output
pytest exit=0
.. [100%]
==================================== PASSES ====================================
=========================== short test summary info ============================
PASSED apps/jellyfin/tests/test_wizard.py::test_health_ready
PASSED apps/jellyfin/tests/test_wizard.py::test_wizard_renders
2 passed in 15.02s
Container logs (tail)
Studio Images 12.2.0.0
jellyfin-1 | [03:37:22.969] [INF] [11] Emby.Server.Implementations.Plugins.PluginManager: Loaded plugin: OMDb 12.2.0.0
jellyfin-1 | [03:37:22.981] [INF] [11] Emby.Server.Implementations.Plugins.PluginManager: Loaded plugin: MusicBrainz 12.2.0.0
jellyfin-1 | [03:37:22.981] [INF] [11] Emby.Server.Implementations.Plugins.PluginManager: Loaded plugin: ListenBrainz Similarity Provider 12.2.0.0
jellyfin-1 | [03:37:22.982] [INF] [11] Emby.Server.Implementations.Plugins.PluginManager: Loaded plugin: AudioDB 12.2.0.0
jellyfin-1 | [03:37:23.021] [INF] [11] Emby.Server.Implementations.Library.Search.SearchManager: Registered 0 external search providers: . Fallback providers: Database (priority 100)
jellyfin-1 | [03:37:23.023] [INF] [11] Jellyfin.Server.Migrations.JellyfinMigrationService: There are 5 migrations for stage AppInitialisation.
jellyfin-1 | [03:37:23.023] [INF] [11] InternalCodeMigration: Perform migration 20250420090000_AddDefaultPluginRepository
jellyfin-1 | [03:37:23.025] [INF] [11] Emby.Server.Implementations.AppBase.BaseConfigurationManager: Saving system configuration
jellyfin-1 | [03:37:23.026] [INF] [11] Emby.Server.Implementations.AppBase.BaseConfigurationManager: Setting cache path: /cache
jellyfin-1 | [03:37:23.027] [INF] [11] InternalCodeMigration: Migration 20250420090000_AddDefaultPluginRepository was successfully applied
jellyfin-1 | [03:37:23.033] [INF] [11] InternalCodeMigration: Perform migration 20250420110000_ReaddDefaultPluginRepository
jellyfin-1 | [03:37:23.034] [INF] [11] InternalCodeMigration: Migration 20250420110000_ReaddDefaultPluginRepository was successfully applied
jellyfin-1 | [03:37:23.036] [INF] [11] InternalCodeMigration: Perform migration 20250420160000_AddDefaultCastReceivers
jellyfin-1 | [03:37:23.037] [INF] [11] Emby.Server.Implementations.AppBase.BaseConfigurationManager: Saving system configuration
jellyfin-1 | [03:37:23.037] [INF] [11] Emby.Server.Implementations.AppBase.BaseConfigurationManager: Setting cache path: /cache
jellyfin-1 | [03:37:23.038] [INF] [11] InternalCodeMigration: Migration 20250420160000_AddDefaultCastReceivers was successfully applied
jellyfin-1 | [03:37:23.039] [INF] [11] InternalCodeMigration: Perform migration 20250420170000_UpdateDefaultPluginRepository
jellyfin-1 | [03:37:23.040] [INF] [11] Emby.Server.Implementations.AppBase.BaseConfigurationManager: Saving system configuration
jellyfin-1 | [03:37:23.040] [INF] [11] Emby.Server.Implementations.AppBase.BaseConfigurationManager: Setting cache path: /cache
jellyfin-1 | [03:37:23.041] [INF] [11] InternalCodeMigration: Migration 20250420170000_UpdateDefaultPluginRepository was successfully applied
jellyfin-1 | [03:37:23.042] [INF] [11] InternalCodeMigration: Perform migration 20250420230000_MoveTrickplayFiles
jellyfin-1 | [03:37:23.158] [WRN] [4] Microsoft.Extensions.Diagnostics.HealthChecks.DefaultHealthCheckService: Health check StartupCheck with status Degraded completed after 0.0519ms with message 'Server is still starting up.'
jellyfin-1 | [03:37:23.506] [INF] [11] Jellyfin.Server.Migrations.Routines.MoveTrickplayFiles: Checked: 5000 - Moved: 0 - Time: 00:00:00.4620253
jellyfin-1 | [03:37:23.506] [INF] [11] Jellyfin.Server.Migrations.Routines.MoveTrickplayFiles: Moved 0 items in 00:00:00.4625450
jellyfin-1 | [03:37:23.506] [INF] [11] InternalCodeMigration: Migration 20250420230000_MoveTrickplayFiles was successfully applied
jellyfin-1 | [03:37:23.509] [INF] [11] Main: Attempt to cleanup JellyfinDb backup.
jellyfin-1 | [03:37:23.510] [INF] [11] Main: Migrations have been applied, optimizing the database... This might take a while
jellyfin-1 | [03:37:23.537] [INF] [11] Jellyfin.Database.Providers.Sqlite.SqliteDatabaseProvider: Not analyzing jellyfin.db, the library holds no items yet
jellyfin-1 | [03:37:23.539] [INF] [11] Jellyfin.Database.Providers.Sqlite.SqliteDatabaseProvider: jellyfin.db optimized successfully!
jellyfin-1 | [03:37:23.569] [INF] [10] Main: Kestrel is listening on 0.0.0.0
jellyfin-1 | [03:37:23.586] [WRN] [10] Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager: No XML encryptor configured. Key {8760d422-7415-49f3-8c89-7e8b165844ae} may be persisted to storage in unencrypted form.
jellyfin-1 | [03:37:24.049] [WRN] [10] Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware: The WebRootPath was not found: /wwwroot. Static files may be unavailable.
jellyfin-1 | [03:37:24.564] [INF] [10] Emby.Server.Implementations.ApplicationHost: Running startup tasks
jellyfin-1 | [03:37:24.620] [INF] [10] Emby.Server.Implementations.ScheduledTasks.TaskManager: Daily trigger for Generate Trickplay Images set to fire at 2026-10-07 03:00:00.000 +00:00, which is 23:22:35.3796317 from now.
jellyfin-1 | [03:37:24.623] [INF] [10] Emby.Server.Implementations.ScheduledTasks.TaskManager: Daily trigger for Extract Chapter Images set to fire at 2026-10-07 02:00:00.000 +00:00, which is 22:22:35.3767042 from now.
jellyfin-1 | [03:37:24.649] [INF] [10] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Found ffmpeg version 8.1.3
jellyfin-1 | [03:37:24.688] [INF] [10] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Available decoders: ["libdav1d", "av1", "av1_cuvid", "av1_qsv", "h264", "h264_qsv", "h264_cuvid", "hevc", "hevc_qsv", "hevc_cuvid", "mpeg2video", "mpeg2_qsv", "mpeg2_cuvid", "mpeg4", "mpeg4_cuvid", "msmpeg4", "vc1_qsv", "vc1_cuvid", "vp8", "libvpx", "vp8_cuvid", "vp8_qsv", "vp9", "libvpx-vp9", "vp9_cuvid", "vp9_qsv", "aac", "ac3", "ac4", "dca", "flac", "mp3", "truehd"]
jellyfin-1 | [03:37:24.704] [INF] [10] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Available encoders: ["libsvtav1", "av1_nvenc", "av1_qsv", "av1_amf", "av1_vaapi", "libx264", "h264_amf", "h264_nvenc", "h264_qsv", "h264_v4l2m2m", "h264_vaapi", "libx265", "hevc_amf", "hevc_nvenc", "hevc_qsv", "hevc_vaapi", "mjpeg_qsv", "mjpeg_vaapi", "aac", "libfdk_aac", "ac3", "alac", "dca", "flac", "libmp3lame", "libopus", "truehd", "libvorbis", "srt"]
jellyfin-1 | [03:37:24.721] [INF] [10] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Available filters: ["bwdif_cuda", "bwdif_opencl", "deinterlace_qsv", "deinterlace_vaapi", "flip_vulkan", "hwupload_cuda", "hwupload_vaapi", "libplacebo", "overlay_opencl", "overlay_qsv", "overlay_vaapi", "overlay_vulkan", "overlay_cuda", "procamp_vaapi", "scale_cuda", "scale_opencl", "scale_qsv", "scale_vaapi", "scale_vulkan", "tonemapx", "tonemap_cuda", "tonemap_opencl", "tonemap_vaapi", "transpose_cuda", "transpose_opencl", "transpose_vaapi", "transpose_vulkan", "vpp_qsv", "yadif_cuda", "yadif_opencl", "zscale", "alphasrc"]
jellyfin-1 | [03:37:24.919] [INF] [10] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Available hwaccel types: ["cuda", "vaapi", "qsv", "drm", "opencl", "vulkan", "amf"]
jellyfin-1 | [03:37:26.521] [INF] [10] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: FFmpeg: /usr/lib/jellyfin-ffmpeg/ffmpeg
jellyfin-1 | [03:37:26.522] [INF] [10] Emby.Server.Implementations.ApplicationHost: ServerId: 9a695e3f13604a63a7da3c8bbebf631c
jellyfin-1 | [03:37:26.522] [INF] [10] Emby.Server.Implementations.ApplicationHost: Core startup complete
jellyfin-1 | [03:37:26.522] [INF] [10] Main: Startup complete 0:00:07.2710525
jellyfin-1 | [03:37:27.635] [INF] [11] Emby.Server.Implementations.ScheduledTasks.TaskManager: Clean Transcode Directory Completed after 0 minute(s) and 0 seconds
jellyfin-1 | [03:37:28.754] [INF] [11] Emby.Server.Implementations.ScheduledTasks.TaskManager: Update Plugins Completed after 0 minute(s) and 1 seconds
jellyfin-1 | [03:37:37.436] [ERR] [10] Jellyfin.Api.Middleware.ExceptionMiddleware: Error processing request: Token is required. URL GET /socket.
jellyfin-1 | [03:37:39.484] [ERR] [10] Jellyfin.Api.Middleware.ExceptionMiddleware: Error processing request: Token is required. URL GET /socket.
jellyfin-1 | [03:37:40.488] [ERR] [26] Jellyfin.Api.Middleware.ExceptionMiddleware: Error processing request: Token is required. URL GET /socket.
Raw manifest
{
"schema_version": "1.0",
"verification_id": "jellyfin-v12.2-20261006-001",
"app": "jellyfin",
"app_version": "v12.2",
"release": {
"source_repo": "jellyfin/jellyfin",
"source_revision": "ca0f16eb7c195f720a1493ed469a27c4657db0c6",
"release_tag": "v12.2",
"upstream_tag": "v12.2",
"image_reference": "jellyfin/jellyfin:12.2"
},
"container": {
"image": "jellyfin/jellyfin:12.2",
"digest": "sha256:da3cd1e48322a35e4b60f3d0a49fca2649e7acce90346dd6e42db777f94e3bbd",
"manifest_digest": "sha256:357724bf0ae27a672c7cbaa899db2d9abeb13dbd8657ccce750258a4c059d037",
"platform": "linux/amd64"
},
"platform": {
"platform_verification_id": "plat-us-east-1-x86_64-20261001-001",
"ami_id": "ami-0045d7fc2ad003464",
"base_ami_source": "public",
"source_ami_name": "ubuntu/images/hvm-ssd-gp3/ubuntu-noble-24.04-amd64-server-*",
"region": "us-east-1",
"architecture": "x86_64"
},
"config": {
"app_config_revision": "e0d620bc1b593b880fa9b35662644c29afb325c6",
"compose_revision": "cb6224fdbc5a2500a809a1ae10bfe2a62689e2dd",
"tests_revision": "4136a9fc8de221b57a8878a17ae7ecd5de3f5cb1",
"template_revision": "c9350db2baff041f7af1051e500f8db9da8c749a"
},
"verification": {
"application": "passed",
"platform": "referenced",
"tests": "passed"
},
"checks": {
"compose_started": true,
"container_healthy": true,
"health_check_passed": true,
"tests_passed": true,
"screenshots_generated": true,
"screenshots_uploaded": false,
"report_uploaded": false,
"verification_manifest_uploaded": false,
"required_platform_contract_valid": true
},
"artifacts": {
"screenshots": [
{
"scenario": "wizard",
"file": "wizard.png",
"url": "https://pub-7abe6acc470447c0a101cc20ce10ceee.r2.dev/screenshots/jellyfin/v12.2/wizard.png",
"caption": {
"en": "Startup wizard",
"zh": "初始化向导"
}
}
],
"report_url": "",
"workflow_run_url": "https://github.com/CoreNovaLabs/CoreNovaLaunch/actions/runs/37409744705"
},
"website": {
"app": "jellyfin",
"app_version": "v12.2",
"verification_id": "jellyfin-v12.2-20261006-001",
"verification_run_id": "37409744705",
"platform_verification_id": "plat-us-east-1-x86_64-20261001-001",
"ami_id": "ami-0045d7fc2ad003464",
"architecture": "x86_64",
"region": "us-east-1",
"display_name": {
"en": "Jellyfin",
"zh": "Jellyfin 媒体中心"
},
"description": {
"en": "Free software media system: stream movies, shows and music to any device",
"zh": "免费开源的流媒体服务,把影音库串流到任何设备"
},
"category": "media",
"icon": "/icons/jellyfin.svg",
"featured": true,
"tags": [
"media",
"streaming",
"plex-alternative"
],
"features": [
{
"en": "Stream to browsers, TVs and mobile apps (Jellyfin clients)",
"zh": "串流到浏览器、电视与移动客户端"
},
{
"en": "Movies, shows, music and books with metadata and subtitles",
"zh": "电影、剧集、音乐与书籍,含元数据与字幕"
},
{
"en": "No accounts or tracking required; fully self-hosted",
"zh": "无需账号与追踪,完全自托管"
}
],
"health": "passed",
"status": "pending",
"verified_at": "2026-10-06T03:37:41Z",
"report_url": "",
"workflow_run_url": "https://github.com/CoreNovaLabs/CoreNovaLaunch/actions/runs/37409744705",
"screenshots_order": [
"wizard"
],
"deploy": {
"documentation_url": "https://jellyfin.org/docs",
"regions": [
"us-east-1"
],
"instance_type": "t3.medium",
"data_volume_gb": 60,
"container_port": 8096,
"health_check_path": "/health",
"docker_image": "jellyfin/jellyfin:12.2",
"extra_environment": [],
"template": {
"url": "https://corenovalaunch-templates.s3.us-east-1.amazonaws.com/corenova-one-click.template.yaml",
"revision": "c9350db2baff041f7af1051e500f8db9da8c749a"
},
"post_deploy": {
"admin_path": "/",
"admin_setup": {
"en": "First visit opens the startup wizard: set language, user account and library folders in the form. There are no preset credentials.",
"zh": "首次访问进入初始化向导:在表单中设置语言、用户账户与媒体库目录;没有预置账号密码。"
},
"notes": [
{
"en": "Media files should be mounted/uploaded to the media volume (/media); empty installs ship no content.",
"zh": "媒体文件需挂载/上传到媒体卷(/media);空装实例不含任何内容。"
},
{
"en": "Jellyfin benefits from ~1 GB+ RAM; the CFN 'medium' profile (t3.medium) is recommended for transcoding.",
"zh": "Jellyfin 建议 ~1GB 以上内存;如需转码推荐 CFN 'medium' 档(t3.medium)。"
},
{
"en": "Config and cache live on a retained volume (/config). It keeps billing after stack deletion; snapshot it, then delete the volume when no longer needed.",
"zh": "配置与缓存保存在保留数据卷(/config)中。删除栈后该卷仍会计费;请先创建快照,不再需要时再删除卷。"
}
]
},
"cost_estimate": {
"monthly_usd": 39,
"note": {
"en": "Verified default in us-east-1: ~$30.4 t3.medium + ~$2 for the 30 GB root and data gp3 volumes + $3.65 public IPv4 per month. Transcoding CPU/network usage is extra.",
"zh": "us-east-1 已验证默认配置:t3.medium 约 $30.4/月 + 30GB 系统盘与数据盘 gp3 约 $2/月 + 公网 IPv4 约 $3.65/月;转码产生的 CPU/流量另计。"
}
},
"data_path": "/config"
},
"release": {
"type": "new_version",
"previous_version": "v12.1",
"type_evidence": "rule4: not semver-comparable to previous 'v12.1'"
},
"screenshots": [
{
"scenario": "wizard",
"file": "wizard.png",
"url": "https://pub-7abe6acc470447c0a101cc20ce10ceee.r2.dev/screenshots/jellyfin/v12.2/wizard.png",
"caption": {
"en": "Startup wizard",
"zh": "初始化向导"
}
}
]
},
"verification_run_id": "37409744705",
"verified_at": "2026-10-06T03:37:41Z"
}