Verification Report · audiobookshelf v2.37.1

NOT PUBLISHED   audiobookshelf-v2.37.1-20260930-001   verified_at 2026-09-30T02:45:09Z

Immutable inputs

App versionv2.37.1 ← release tag v2.37.1 · source 3563d49424d5
Image (exact tag)ghcr.io/advplyr/audiobookshelf:2.37.1
Image digest (linux/amd64)sha256:10f3490855630aa024ba618b90ba6f58f3d9d7063dd77e1d1e958fdc4ede7c70
Index digestsha256:581d68b2a6fc7ebf58d81c878a9f387cbbc0d88ac9d37b298b9cee10168af85b
Pulled asghcr.io/advplyr/audiobookshelf:2.37.1@sha256:10f3490855630aa024ba618b90ba6f58f3d9d7063dd77e1d1e958fdc4ede7c70 via ghcr.io
Platform contractami-0045d7fc2ad003464 · us-east-1/x86_64 · source=public (plat-us-east-1-x86_64-20260924-002)
Config revisionsapp 9480426fb2f2 · compose 261cd2345180
Release typebug_fix — rule3: patch-only bump v2.37.0 -> (2, 37, 1)

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 2.37.1 — 匹配(exact):kind=exec_command 取到 '2.37.1',期望 '2.37.1'
Testspytest exit=0 . [100%] ==================================== PASSES ==================================== =========================== short test summary info ============================ PASSED apps/audiobookshelf/tests/test_smoke.py::test_health_and_root 1 passed in 0.09s
Container staterunning
Duration20.5s(2026-09-30T02:44:48Z → 2026-09-30T02:45:09Z)

Screenshots

login
login · Sign-in and setup page / 登录与设置页

Application test output

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

Container logs (tail)

--- compose up ---
 audiobookshelf Pulling 
 audiobookshelf Pulled 
 Network cn-audiobookshelf-95259a7c09c2_default  Creating
 Network cn-audiobookshelf-95259a7c09c2_default  Created
 Container cn-audiobookshelf-95259a7c09c2-audiobookshelf-1  Creating
 Container cn-audiobookshelf-95259a7c09c2-audiobookshelf-1  Created
 Container cn-audiobookshelf-95259a7c09c2-audiobookshelf-1  Starting
 Container cn-audiobookshelf-95259a7c09c2-audiobookshelf-1  Started

--- container logs ---
audiobookshelf-1  | Running in production mode.
audiobookshelf-1  | Options: CONFIG_PATH=/data/config, METADATA_PATH=/data/metadata, PORT=80, HOST=undefined, SOURCE=docker, ROUTER_BASE_PATH=/audiobookshelf
audiobookshelf-1  | [2026-09-30 02:45:03.786] INFO: === Starting Server ===
audiobookshelf-1  | [2026-09-30 02:45:03.792] INFO: [Server] Init v2.37.1
audiobookshelf-1  | [2026-09-30 02:45:03.792] INFO: [Server] Node.js Version: v24.21.0
audiobookshelf-1  | [2026-09-30 02:45:03.792] INFO: [Server] Platform: linux
audiobookshelf-1  | [2026-09-30 02:45:03.793] INFO: [Server] Arch: x64
audiobookshelf-1  | [2026-09-30 02:45:03.795] INFO: [Database] absdatabase.sqlite not found at /data/config/absdatabase.sqlite
audiobookshelf-1  | [2026-09-30 02:45:03.796] INFO: [Database] Initializing db at "/data/config/absdatabase.sqlite"
audiobookshelf-1  | [2026-09-30 02:45:03.821] INFO: [Database] Loading extension /usr/local/lib/nusqlite3/libnusqlite3.so
audiobookshelf-1  | [2026-09-30 02:45:03.822] INFO: [Database] Successfully loaded extension /usr/local/lib/nusqlite3/libnusqlite3.so
audiobookshelf-1  | [2026-09-30 02:45:03.822] INFO: [Database] Db supports unaccent and unicode foldings
audiobookshelf-1  | [2026-09-30 02:45:03.822] INFO: [Database] Db connection was successful
audiobookshelf-1  | [2026-09-30 02:45:03.839] INFO: [MigrationManager] Database is new. Skipping migrations.
audiobookshelf-1  | [2026-09-30 02:45:04.067] INFO: [Database] Db initialized with models: user, session, apiKey, library, libraryFolder, book, podcast, podcastEpisode, libraryItem, mediaProgress, series, bookSeries, author, bookAuthor, collection, collectionBook, playlist, playlistMediaItem, device, playbackSession, feed, feedEpisode, setting, customMetadataProvider, mediaItemShare
audiobookshelf-1  | [2026-09-30 02:45:04.067] INFO: [Database] Adding trigger update_library_items_title
audiobookshelf-1  | [2026-09-30 02:45:04.070] INFO: [Database] Adding trigger update_library_items_title_ignore_prefix
audiobookshelf-1  | [2026-09-30 02:45:04.072] INFO: [Database] Adding trigger update_library_items_title_from_podcasts_title
audiobookshelf-1  | [2026-09-30 02:45:04.074] INFO: [Database] Adding trigger update_library_items_title_ignore_prefix_from_podcasts_title_ignore_prefix
audiobookshelf-1  | [2026-09-30 02:45:04.076] INFO: [Database] Adding trigger update_library_items_author_names_on_book_authors_insert
audiobookshelf-1  | [2026-09-30 02:45:04.079] INFO: [Database] Adding trigger update_library_items_author_names_on_book_authors_delete
audiobookshelf-1  | [2026-09-30 02:45:04.081] INFO: [Database] Adding trigger update_library_items_author_names_on_authors_update
audiobookshelf-1  | [2026-09-30 02:45:04.112] INFO: [Database] running ANALYZE
audiobookshelf-1  | [2026-09-30 02:45:04.115] INFO: [Database] ANALYZE completed
audiobookshelf-1  | [2026-09-30 02:45:04.115] INFO: [Server] Serving from base path "/audiobookshelf"
audiobookshelf-1  | [2026-09-30 02:45:04.115] INFO: [TokenManager] JWT secret key not found, generating one
audiobookshelf-1  | [2026-09-30 02:45:04.120] INFO: [LogManager] Init current daily log filename: 2026-09-30.txt
audiobookshelf-1  | [2026-09-30 02:45:04.124] INFO: [BackupManager] 0 Backups Found
audiobookshelf-1  | [2026-09-30 02:45:04.125] INFO: [BackupManager] Auto Backups are disabled
audiobookshelf-1  | [2026-09-30 02:45:04.141] INFO: Listening on port :80

Raw manifest

{
  "schema_version": "1.0",
  "verification_id": "audiobookshelf-v2.37.1-20260930-001",
  "app": "audiobookshelf",
  "app_version": "v2.37.1",
  "release": {
    "source_repo": "advplyr/audiobookshelf",
    "source_revision": "3563d49424d50170324de9236a24c591b6d965e9",
    "release_tag": "v2.37.1",
    "upstream_tag": "v2.37.1",
    "image_reference": "ghcr.io/advplyr/audiobookshelf:2.37.1"
  },
  "container": {
    "image": "ghcr.io/advplyr/audiobookshelf:2.37.1",
    "digest": "sha256:10f3490855630aa024ba618b90ba6f58f3d9d7063dd77e1d1e958fdc4ede7c70",
    "manifest_digest": "sha256:581d68b2a6fc7ebf58d81c878a9f387cbbc0d88ac9d37b298b9cee10168af85b",
    "platform": "linux/amd64"
  },
  "platform": {
    "platform_verification_id": "plat-us-east-1-x86_64-20260924-002",
    "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": "9480426fb2f235b746aafc073aa7ee630b6c762b",
    "compose_revision": "261cd23451808212450bd674cbbca1405eb5b237",
    "tests_revision": "fda7146f7edb1f7d74ea7f6b1fa09cd99bc4ea7e",
    "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": "login",
        "file": "login.png",
        "url": "https://pub-7abe6acc470447c0a101cc20ce10ceee.r2.dev/screenshots/audiobookshelf/v2.37.1/login.png",
        "caption": {
          "en": "Sign-in and setup page",
          "zh": "登录与设置页"
        }
      }
    ],
    "report_url": "",
    "workflow_run_url": "https://github.com/CoreNovaLabs/CoreNovaLaunch/actions/runs/36661198216"
  },
  "website": {
    "app": "audiobookshelf",
    "app_version": "v2.37.1",
    "verification_id": "audiobookshelf-v2.37.1-20260930-001",
    "verification_run_id": "36661198216",
    "platform_verification_id": "plat-us-east-1-x86_64-20260924-002",
    "ami_id": "ami-0045d7fc2ad003464",
    "architecture": "x86_64",
    "region": "us-east-1",
    "display_name": {
      "en": "Audiobookshelf",
      "zh": "Audiobookshelf 有声书库"
    },
    "description": {
      "en": "Self-hosted audiobook and podcast server with progress sync",
      "zh": "支持进度同步的自托管有声书与播客服务器"
    },
    "category": "media",
    "icon": "/icons/audiobookshelf.svg",
    "featured": false,
    "tags": [
      "audiobooks",
      "podcasts",
      "streaming"
    ],
    "features": [
      {
        "en": "Stream audiobooks and podcasts with per-user progress sync",
        "zh": "串流有声书与播客,按用户同步播放进度"
      },
      {
        "en": "Metadata matching, chapters, collections and mobile apps",
        "zh": "支持元数据匹配、章节、合集与移动客户端"
      }
    ],
    "health": "passed",
    "status": "pending",
    "verified_at": "2026-09-30T02:45:09Z",
    "report_url": "",
    "workflow_run_url": "https://github.com/CoreNovaLabs/CoreNovaLaunch/actions/runs/36661198216",
    "screenshots_order": [
      "login"
    ],
    "deploy": {
      "documentation_url": "https://www.audiobookshelf.org/docs/",
      "regions": [
        "us-east-1"
      ],
      "instance_type": "t3.medium",
      "data_volume_gb": 60,
      "container_port": 80,
      "health_check_path": "/healthcheck",
      "docker_image": "ghcr.io/advplyr/audiobookshelf:2.37.1",
      "extra_environment": [
        "CONFIG_PATH=/data/config",
        "METADATA_PATH=/data/metadata"
      ],
      "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": "Open / and create the root user, then add audiobook and podcast libraries under /data.",
          "zh": "打开 / 创建根用户,然后添加位于 /data 下的有声书和播客媒体库。"
        },
        "notes": [
          {
            "en": "Configuration, metadata and user media share the retained /data root.",
            "zh": "配置、元数据与用户媒体共用持久化 /data 根目录。"
          }
        ]
      },
      "cost_estimate": {
        "monthly_usd": 39,
        "note": {
          "en": "Verified default in us-east-1: t3.medium, 20 GB root plus 60 GB data gp3, and public IPv4; media storage, transfer and transcoding are extra.",
          "zh": "us-east-1 已验证默认配置:t3.medium、20GB 系统盘、60GB 数据盘与公网 IPv4;媒体存储、流量与转码另计。"
        }
      },
      "data_path": "/data"
    },
    "release": {
      "type": "bug_fix",
      "previous_version": "v2.37.0",
      "type_evidence": "rule3: patch-only bump v2.37.0 -> (2, 37, 1)"
    },
    "screenshots": [
      {
        "scenario": "login",
        "file": "login.png",
        "url": "https://pub-7abe6acc470447c0a101cc20ce10ceee.r2.dev/screenshots/audiobookshelf/v2.37.1/login.png",
        "caption": {
          "en": "Sign-in and setup page",
          "zh": "登录与设置页"
        }
      }
    ]
  },
  "verification_run_id": "36661198216",
  "verified_at": "2026-09-30T02:45:09Z"
}