Verification Report · navidrome v0.64.0

NOT PUBLISHED   navidrome-v0.64.0-20260916-001   verified_at 2026-09-16T00:14:43Z

Immutable inputs

App versionv0.64.0 ← release tag v0.64.0 · source 1072e9f7eb27
Image (exact tag)deluan/navidrome:0.64.0
Image digest (linux/amd64)sha256:1a64cbb2603cec5d2615c3a27e91442436b2229583408a55cdc8d85705b95e65
Index digestsha256:a384948b81bd1529986c5960169e7fc4fa00f46bde6bd517971a4c36671db2af
Pulled asdeluan/navidrome:0.64.0@sha256:1a64cbb2603cec5d2615c3a27e91442436b2229583408a55cdc8d85705b95e65 via registry-1.docker.io
Platform contractami-025d99823a4caad37 · us-east-1/x86_64 · source=public (plat-us-east-1-x86_64-20260909-001)
Config revisionsapp 91ecc12520df · compose fc583957c0fa
Release typesecurity_update — rule2: keyword 'vulnerab' in upstream release notes

Publish gate

CheckFieldResult
Compose startedchecks.compose_startedPassed
Container healthychecks.container_healthyPassed
Health check passedchecks.health_check_passedPassed
Application testschecks.tests_passedPassed
Screenshots capturedchecks.screenshots_generatedPassed
Screenshots publishedchecks.screenshots_uploadedFailed
Report publishedchecks.report_uploadedFailed
Manifest publishedchecks.verification_manifest_uploadedFailed
Platform contract validchecks.required_platform_contract_validPassed

Evidence

Health probeHTTP 200 — ready
Version assertionTrue actual 0.64.0 — 匹配(exact):kind=exec_command 取到 '0.64.0',期望 '0.64.0'
Testspytest exit=0 . [100%] ==================================== PASSES ==================================== =========================== short test summary info ============================ PASSED apps/navidrome/tests/test_smoke.py::test_web_ui_answers 1 passed in 0.24s
Container staterunning
Duration24.9s(2026-09-16T00:14:18Z → 2026-09-16T00:14:43Z)

Screenshots

setup
setup · Admin setup / 管理员设置

Application test output

pytest exit=0
.                                                                        [100%]
==================================== PASSES ====================================
=========================== short test summary info ============================
PASSED apps/navidrome/tests/test_smoke.py::test_web_ui_answers
1 passed in 0.24s

Container logs (tail)

--- compose up ---
 navidrome Pulling 
 navidrome Pulled 
 Network cn-navidrome_default  Creating
 Network cn-navidrome_default  Created
 Container cn-navidrome-navidrome-1  Creating
 Container cn-navidrome-navidrome-1  Created
 Container cn-navidrome-navidrome-1  Starting
 Container cn-navidrome-navidrome-1  Started

--- container logs ---
navidrome-1  |  _   _             _     _
navidrome-1  | | \ | |           (_)   | |
navidrome-1  | |  \| | __ ___   ___  __| |_ __ ___  _ __ ___   ___
navidrome-1  | | . ` |/ _` \ \ / / |/ _` | '__/ _ \| '_ ` _ \ / _ \
navidrome-1  | | |\  | (_| |\ V /| | (_| | | | (_) | | | | | |  __/
navidrome-1  | \_| \_/\__,_| \_/ |_|\__,_|_|  \___/|_| |_| |_|\___|
navidrome-1  |                           Version: 0.64.0 (1072e9f7)
navidrome-1  | 
navidrome-1  | time="2026-09-16T00:14:35Z" level=info msg="No configuration file found. Loaded configuration only from environment variables"
navidrome-1  | time="2026-09-16T00:14:35Z" level=info msg="Creating DB Schema"
navidrome-1  | time="2026-09-16T00:14:36Z" level=info msg="Starting signaler"
navidrome-1  | time="2026-09-16T00:14:36Z" level=info msg="Periodic backup is DISABLED"
navidrome-1  | time="2026-09-16T00:14:36Z" level=info msg="Starting scheduler"
navidrome-1  | time="2026-09-16T00:14:36Z" level=info msg="Scheduling DB analysis check" schedule="@every 30m"
navidrome-1  | time="2026-09-16T00:14:36Z" level=info msg="Starting Insight Collector"
navidrome-1  | time="2026-09-16T00:14:36Z" level=info msg="Periodic scan is DISABLED"
navidrome-1  | time="2026-09-16T00:14:36Z" level=info msg="Creating Image cache" maxSize="100 MB" path=/storage/data/cache/images
navidrome-1  | time="2026-09-16T00:14:36Z" level=info msg="Finished initializing cache" cache=Image elapsedTime="261.916µs" maxSize=100MB
navidrome-1  | time="2026-09-16T00:14:36Z" level=info msg="Creating Transcoding cache" maxSize="100 MB" path=/storage/data/cache/transcoding
navidrome-1  | time="2026-09-16T00:14:36Z" level=info msg="Started watcher for library" libraryID=1 name="Music Library" path=/storage/music
navidrome-1  | time="2026-09-16T00:14:36Z" level=warning msg="Error resolving path" err="lstat /storage/music: no such file or directory" path=/storage/music
navidrome-1  | time="2026-09-16T00:14:36Z" level=info msg="Finished initializing cache" cache=Transcoding elapsedTime="272.087µs" maxSize=100MB
navidrome-1  | time="2026-09-16T00:14:36Z" level=error msg="Watcher error" error="getting FS: stat /storage/music: no such file or directory: /storage/music" libraryID=1 name="Music Library" path=/storage/music
navidrome-1  | time="2026-09-16T00:14:36Z" level=info msg="Starting artwork worker"
navidrome-1  | time="2026-09-16T00:14:36Z" level=info msg="Starting plugin manager"
navidrome-1  | time="2026-09-16T00:14:36Z" level=info msg="Starting plugin manager" folder=/storage/data/plugins
navidrome-1  | time="2026-09-16T00:14:36Z" level=info msg="Running initial setup"
navidrome-1  | time="2026-09-16T00:14:36Z" level=info msg="Setting Session Timeout" value=48h
navidrome-1  | time="2026-09-16T00:14:36Z" level=info msg="Creating new JWT secret" key=JWTSecret
navidrome-1  | time="2026-09-16T00:14:36Z" level=info msg="Creating new JWT secret" key=JWTPublicSecret
navidrome-1  | time="2026-09-16T00:14:36Z" level=info msg="Login rate limit set" requestLimit=5 windowLength=20s
navidrome-1  | time="2026-09-16T00:14:36Z" level=info msg="Found ffmpeg" path=/usr/bin/ffmpeg
navidrome-1  | time="2026-09-16T00:14:36Z" level=info msg="Mounting Native API routes" path=/api
navidrome-1  | time="2026-09-16T00:14:36Z" level=info msg="Mounting Subsonic API routes" path=/rest
navidrome-1  | time="2026-09-16T00:14:36Z" level=info msg="Mounting Public Endpoints routes" path=/share
navidrome-1  | time="2026-09-16T00:14:36Z" level=info msg="Mounting LastFM Auth routes" path=/api/lastfm
navidrome-1  | time="2026-09-16T00:14:36Z" level=info msg="Mounting ListenBrainz Auth routes" path=/api/listenbrainz
navidrome-1  | time="2026-09-16T00:14:36Z" level=info msg="Mounting Background images routes" path=/backgrounds
navidrome-1  | time="2026-09-16T00:14:36Z" level=info msg="Mounting WebUI routes" path=/app
navidrome-1  | time="2026-09-16T00:14:36Z" level=info msg="Creating backgrounds cache" maxSize="100 MB" path=/storage/data/cache/backgrounds
navidrome-1  | time="2026-09-16T00:14:36Z" level=info msg="Finished initializing cache" cache=backgrounds elapsedTime="152.871µs" maxSize=100MB
navidrome-1  | time="2026-09-16T00:14:36Z" level=info msg="----> Navidrome server is ready!" address="0.0.0.0:4533" startupTime=519.3ms tlsEnabled=false
navidrome-1  | time="2026-09-16T00:14:38Z" level=warning msg="Full scan required after migration"
navidrome-1  | time="2026-09-16T00:14:38Z" level=info msg="No configuration file found. Loaded configuration only from environment variables"
navidrome-1  | time="2026-09-16T00:14:38Z" level=info msg="Scanner: Starting scan" fullScan=true numLibraries=1
navidrome-1  | time="2026-09-16T00:14:38Z" level=warning msg="Error resolving path" err="lstat /storage/music: no such file or directory" path=/storage/music
navidrome-1  | time="2026-09-16T00:14:38Z" level=error msg="Error getting fs for library" error="stat /storage/music: no such file or directory: /storage/music" library="Music Library" path=/storage/music
navidrome-1  | time="2026-09-16T00:14:38Z" level=error msg="Scanner: Error creating scan context" error="getting fs for library: stat /storage/music: no such file or directory: /storage/music" lib="Music Library"
navidrome-1  | time="2026-09-16T00:14:38Z" level=warning msg="Playlists will not be imported, as there are no admin users yet. They will be imported automatically once an admin user is created."
navidrome-1  | time="2026-09-16T00:14:38Z" level=info msg="Scanner: Finished scanning all libraries" duration=5.1ms
navidrome-1  | time="2026-09-16T00:14:38Z" level=error msg="Scan failed" error="getting fs for library: stat /storage/music: no such file or directory: /storage/music"

Raw manifest

{
  "schema_version": "1.0",
  "verification_id": "navidrome-v0.64.0-20260916-001",
  "app": "navidrome",
  "app_version": "v0.64.0",
  "release": {
    "source_repo": "navidrome/navidrome",
    "source_revision": "1072e9f7eb27faef740df5f0bd7fb18898aa650e",
    "release_tag": "v0.64.0",
    "upstream_tag": "v0.64.0",
    "image_reference": "deluan/navidrome:0.64.0"
  },
  "container": {
    "image": "deluan/navidrome:0.64.0",
    "digest": "sha256:1a64cbb2603cec5d2615c3a27e91442436b2229583408a55cdc8d85705b95e65",
    "manifest_digest": "sha256:a384948b81bd1529986c5960169e7fc4fa00f46bde6bd517971a4c36671db2af",
    "platform": "linux/amd64"
  },
  "platform": {
    "platform_verification_id": "plat-us-east-1-x86_64-20260909-001",
    "ami_id": "ami-025d99823a4caad37",
    "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": "91ecc12520df405fc8289a4c8e2a58d05e6f6162",
    "compose_revision": "fc583957c0fa5c1110e1f54731882b5c783a3481",
    "tests_revision": "fda7146f7edb1f7d74ea7f6b1fa09cd99bc4ea7e"
  },
  "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": "setup",
        "file": "setup.png",
        "url": "https://pub-7abe6acc470447c0a101cc20ce10ceee.r2.dev/screenshots/navidrome/v0.64.0/setup.png",
        "caption": {
          "en": "Admin setup",
          "zh": "管理员设置"
        }
      }
    ],
    "report_url": "",
    "workflow_run_url": "https://github.com/CoreNovaLabs/CoreNovaLaunchVerify/actions/runs/35039084144"
  },
  "website": {
    "app": "navidrome",
    "app_version": "v0.64.0",
    "verification_id": "navidrome-v0.64.0-20260916-001",
    "verification_run_id": "35039084144",
    "platform_verification_id": "plat-us-east-1-x86_64-20260909-001",
    "ami_id": "ami-025d99823a4caad37",
    "architecture": "x86_64",
    "region": "us-east-1",
    "display_name": {
      "en": "Navidrome",
      "zh": "Navidrome 音乐服务器"
    },
    "description": {
      "en": "Modern personal music server compatible with Subsonic clients",
      "zh": "兼容 Subsonic 客户端的现代个人音乐服务器"
    },
    "category": "media",
    "icon": "/icons/navidrome.svg",
    "featured": false,
    "tags": [
      "music",
      "streaming",
      "subsonic"
    ],
    "features": [
      {
        "en": "Stream a personal music library to web and Subsonic clients",
        "zh": "将个人音乐库串流到 Web 与 Subsonic 客户端"
      },
      {
        "en": "Fast library scanning, playlists and transcoding",
        "zh": "快速媒体库扫描、播放列表与转码"
      }
    ],
    "health": "passed",
    "status": "pending",
    "verified_at": "2026-09-16T00:14:43Z",
    "report_url": "",
    "workflow_run_url": "https://github.com/CoreNovaLabs/CoreNovaLaunchVerify/actions/runs/35039084144",
    "screenshots_order": [
      "setup"
    ],
    "deploy": {
      "documentation_url": "https://www.navidrome.org/docs/",
      "regions": [
        "us-east-1"
      ],
      "instance_type": "t3.small",
      "data_volume_gb": 30,
      "container_port": 4533,
      "health_check_path": "/",
      "docker_image": "deluan/navidrome:0.64.0",
      "extra_environment": [
        "ND_DATAFOLDER=/storage/data",
        "ND_MUSICFOLDER=/storage/music"
      ],
      "post_deploy": {
        "admin_path": "/",
        "admin_setup": {
          "en": "First visit opens the administrator creation screen. Upload music under /storage/music before running a library scan.",
          "zh": "首次访问会进入管理员创建页。运行媒体库扫描前,请将音乐上传到 /storage/music。"
        },
        "notes": [
          {
            "en": "The database, cache and music library share one retained root at /storage.",
            "zh": "数据库、缓存与音乐库共用 /storage 持久根目录。"
          }
        ]
      },
      "cost_estimate": {
        "monthly_usd": 23,
        "note": {
          "en": "Verified default in us-east-1: t3.small, 20 GB root plus 30 GB data gp3, and public IPv4; media storage, transfer and snapshots are extra.",
          "zh": "us-east-1 已验证默认配置:t3.small、20GB 系统盘、30GB 数据盘与公网 IPv4;媒体存储、流量和快照另计。"
        }
      },
      "data_path": "/storage"
    },
    "release": {
      "type": "security_update",
      "previous_version": "",
      "type_evidence": "rule2: keyword 'vulnerab' in upstream release notes"
    },
    "screenshots": [
      {
        "scenario": "setup",
        "file": "setup.png",
        "url": "https://pub-7abe6acc470447c0a101cc20ce10ceee.r2.dev/screenshots/navidrome/v0.64.0/setup.png",
        "caption": {
          "en": "Admin setup",
          "zh": "管理员设置"
        }
      }
    ]
  },
  "verification_run_id": "35039084144",
  "verified_at": "2026-09-16T00:14:43Z"
}