Verification Report · audiobookshelf v2.36.0

NOT PUBLISHED   audiobookshelf-v2.36.0-20260916-001   verified_at 2026-09-16T00:14:18Z

Immutable inputs

App versionv2.36.0 ← release tag v2.36.0 · source 96d4021a3cd4
Image (exact tag)ghcr.io/advplyr/audiobookshelf:2.36.0
Image digest (linux/amd64)sha256:e388e90e381ae3fa8660346612b2955f2c555ede81c9c286e2218bdf966b4de8
Index digestsha256:180acad33d69c99ed208676465d8edcb268fa46967735579a7810859885b1a8e
Pulled asghcr.io/advplyr/audiobookshelf:2.36.0@sha256:e388e90e381ae3fa8660346612b2955f2c555ede81c9c286e2218bdf966b4de8 via ghcr.io
Platform contractami-025d99823a4caad37 · us-east-1/x86_64 · source=public (plat-us-east-1-x86_64-20260909-001)
Config revisionsapp 9480426fb2f2 · compose 261cd2345180
Release typeinitial — rule1: no published versions recorded for this app

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.36.0 — 匹配(exact):kind=exec_command 取到 '2.36.0',期望 '2.36.0'
Testspytest exit=0 . [100%] ==================================== PASSES ==================================== =========================== short test summary info ============================ PASSED apps/audiobookshelf/tests/test_smoke.py::test_health_and_root 1 passed in 0.21s
Container staterunning
Duration14.6s(2026-09-16T00:14:03Z → 2026-09-16T00:14:18Z)

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.21s

Container logs (tail)

--- compose up ---
 audiobookshelf Pulling 
 audiobookshelf Pulled 
 Network cn-audiobookshelf_default  Creating
 Network cn-audiobookshelf_default  Created
 Container cn-audiobookshelf-audiobookshelf-1  Creating
 Container cn-audiobookshelf-audiobookshelf-1  Created
 Container cn-audiobookshelf-audiobookshelf-1  Starting
 Container cn-audiobookshelf-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-16 00:14:12.739] INFO: === Starting Server ===
audiobookshelf-1  | [2026-09-16 00:14:12.750] INFO: [Server] Init v2.36.0
audiobookshelf-1  | [2026-09-16 00:14:12.750] INFO: [Server] Node.js Version: v20.20.2
audiobookshelf-1  | [2026-09-16 00:14:12.750] INFO: [Server] Platform: linux
audiobookshelf-1  | [2026-09-16 00:14:12.750] INFO: [Server] Arch: x64
audiobookshelf-1  | [2026-09-16 00:14:12.754] INFO: [Database] absdatabase.sqlite not found at /data/config/absdatabase.sqlite
audiobookshelf-1  | [2026-09-16 00:14:12.754] INFO: [Database] Initializing db at "/data/config/absdatabase.sqlite"
audiobookshelf-1  | [2026-09-16 00:14:12.780] INFO: [Database] Loading extension /usr/local/lib/nusqlite3/libnusqlite3.so
audiobookshelf-1  | [2026-09-16 00:14:12.781] INFO: [Database] Successfully loaded extension /usr/local/lib/nusqlite3/libnusqlite3.so
audiobookshelf-1  | [2026-09-16 00:14:12.781] INFO: [Database] Db supports unaccent and unicode foldings
audiobookshelf-1  | [2026-09-16 00:14:12.781] INFO: [Database] Db connection was successful
audiobookshelf-1  | [2026-09-16 00:14:12.798] INFO: [MigrationManager] Database is new. Skipping migrations.
audiobookshelf-1  | [2026-09-16 00:14:12.997] 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-16 00:14:12.997] INFO: [Database] Adding trigger update_library_items_title
audiobookshelf-1  | [2026-09-16 00:14:12.999] INFO: [Database] Adding trigger update_library_items_title_ignore_prefix
audiobookshelf-1  | [2026-09-16 00:14:13.001] INFO: [Database] Adding trigger update_library_items_title_from_podcasts_title
audiobookshelf-1  | [2026-09-16 00:14:13.002] INFO: [Database] Adding trigger update_library_items_title_ignore_prefix_from_podcasts_title_ignore_prefix
audiobookshelf-1  | [2026-09-16 00:14:13.004] INFO: [Database] Adding trigger update_library_items_author_names_on_book_authors_insert
audiobookshelf-1  | [2026-09-16 00:14:13.006] INFO: [Database] Adding trigger update_library_items_author_names_on_book_authors_delete
audiobookshelf-1  | [2026-09-16 00:14:13.008] INFO: [Database] Adding trigger update_library_items_author_names_on_authors_update
audiobookshelf-1  | [2026-09-16 00:14:13.037] INFO: [Database] running ANALYZE
audiobookshelf-1  | [2026-09-16 00:14:13.039] INFO: [Database] ANALYZE completed
audiobookshelf-1  | [2026-09-16 00:14:13.039] INFO: [TokenManager] JWT secret key not found, generating one
audiobookshelf-1  | [2026-09-16 00:14:13.043] INFO: [LogManager] Init current daily log filename: 2026-09-16.txt
audiobookshelf-1  | [2026-09-16 00:14:13.047] INFO: [BackupManager] 0 Backups Found
audiobookshelf-1  | [2026-09-16 00:14:13.048] INFO: [BackupManager] Auto Backups are disabled
audiobookshelf-1  | [2026-09-16 00:14:13.065] INFO: Listening on port :80

Raw manifest

{
  "schema_version": "1.0",
  "verification_id": "audiobookshelf-v2.36.0-20260916-001",
  "app": "audiobookshelf",
  "app_version": "v2.36.0",
  "release": {
    "source_repo": "advplyr/audiobookshelf",
    "source_revision": "96d4021a3cd45f67bf374b65abafbe5d73e926b5",
    "release_tag": "v2.36.0",
    "upstream_tag": "v2.36.0",
    "image_reference": "ghcr.io/advplyr/audiobookshelf:2.36.0"
  },
  "container": {
    "image": "ghcr.io/advplyr/audiobookshelf:2.36.0",
    "digest": "sha256:e388e90e381ae3fa8660346612b2955f2c555ede81c9c286e2218bdf966b4de8",
    "manifest_digest": "sha256:180acad33d69c99ed208676465d8edcb268fa46967735579a7810859885b1a8e",
    "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": "9480426fb2f235b746aafc073aa7ee630b6c762b",
    "compose_revision": "261cd23451808212450bd674cbbca1405eb5b237",
    "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": "login",
        "file": "login.png",
        "url": "https://pub-7abe6acc470447c0a101cc20ce10ceee.r2.dev/screenshots/audiobookshelf/v2.36.0/login.png",
        "caption": {
          "en": "Sign-in and setup page",
          "zh": "登录与设置页"
        }
      }
    ],
    "report_url": "",
    "workflow_run_url": "https://github.com/CoreNovaLabs/CoreNovaLaunchVerify/actions/runs/35039087586"
  },
  "website": {
    "app": "audiobookshelf",
    "app_version": "v2.36.0",
    "verification_id": "audiobookshelf-v2.36.0-20260916-001",
    "verification_run_id": "35039087586",
    "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": "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-16T00:14:18Z",
    "report_url": "",
    "workflow_run_url": "https://github.com/CoreNovaLabs/CoreNovaLaunchVerify/actions/runs/35039087586",
    "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.36.0",
      "extra_environment": [
        "CONFIG_PATH=/data/config",
        "METADATA_PATH=/data/metadata"
      ],
      "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": "initial",
      "previous_version": "",
      "type_evidence": "rule1: no published versions recorded for this app"
    },
    "screenshots": [
      {
        "scenario": "login",
        "file": "login.png",
        "url": "https://pub-7abe6acc470447c0a101cc20ce10ceee.r2.dev/screenshots/audiobookshelf/v2.36.0/login.png",
        "caption": {
          "en": "Sign-in and setup page",
          "zh": "登录与设置页"
        }
      }
    ]
  },
  "verification_run_id": "35039087586",
  "verified_at": "2026-09-16T00:14:18Z"
}