Verification Report · ghost v6.67.0

NOT PUBLISHED   ghost-v6.67.0-20260929-001   verified_at 2026-09-29T21:39:06Z

Immutable inputs

App versionv6.67.0 ← release tag v6.67.0 · source 4cb7e7956356
Image (exact tag)ghost:6.67.0-alpine
Image digest (linux/amd64)sha256:7cdfce0cbaec91b166bf61f7fafa1199f7b71c8e2c42a3ac1a44279c56ad0d10
Index digestsha256:1f7ecf094d54363014636c3540dbe9c368394504abaa283914e4fcf8d699f331
Pulled asghost:6.67.0-alpine@sha256:7cdfce0cbaec91b166bf61f7fafa1199f7b71c8e2c42a3ac1a44279c56ad0d10 via registry-1.docker.io
Platform contractami-0045d7fc2ad003464 · us-east-1/x86_64 · source=public (plat-us-east-1-x86_64-20260924-002)
Config revisionsapp 237f81cb950c · compose e2edd78968ad
Release typenew_version — rule4: minor/major change v6.65.0 -> (6, 67, 0)

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 6.67.0 — 匹配(exact):kind=env 取到 '6.67.0',期望 '6.67.0'
Testspytest exit=0 ....... [100%] ==================================== PASSES ==================================== =========================== short test summary info ============================ PASSED apps/ghost/tests/test_admin.py::test_public_admin_site_endpoint_answers PASSED apps/ghost/tests/test_admin.py::test_protected_admin_endpoints_reject_unauthenticated PASSED apps/ghost/tests/test_admin.py::test_admin_spa_is_served PASSED apps/ghost/tests/test_admin.py::test_owner_publish_restart_and_cold_restore PASSED apps/ghost/tests/test_home.py::test_homepage_renders_html PASSED apps/ghost/tests/test_home.py::test_homepage_has_ghost_markup PASSED apps/ghost/tests/test_home.py::test_robots_and_sitemap_available 7 passed in 21.38s
Container staterunning
Duration92.3s(2026-09-29T21:37:35Z → 2026-09-29T21:39:06Z)

Screenshots

home
home · Public site / 站点首页
admin
admin · Admin console / 管理后台

Application test output

pytest exit=0
.......                                                                  [100%]
==================================== PASSES ====================================
=========================== short test summary info ============================
PASSED apps/ghost/tests/test_admin.py::test_public_admin_site_endpoint_answers
PASSED apps/ghost/tests/test_admin.py::test_protected_admin_endpoints_reject_unauthenticated
PASSED apps/ghost/tests/test_admin.py::test_admin_spa_is_served
PASSED apps/ghost/tests/test_admin.py::test_owner_publish_restart_and_cold_restore
PASSED apps/ghost/tests/test_home.py::test_homepage_renders_html
PASSED apps/ghost/tests/test_home.py::test_homepage_has_ghost_markup
PASSED apps/ghost/tests/test_home.py::test_robots_and_sitemap_available
7 passed in 21.38s

Container logs (tail)

ghost-1  | [2026-09-29 21:39:03] INFO "GET /ghost/api/admin/authentication/setup/" 200 5ms
ghost-1  | [2026-09-29 21:39:04] INFO "POST /ghost/api/admin/session/" 201 104ms
ghost-1  | [2026-09-29 21:39:04] INFO "GET /ghost/api/admin/users/me/" 200 13ms
ghost-1  | [2026-09-29 21:39:04] INFO "GET /ghost/api/admin/posts/?filter=status:published&limit=50" 200 24ms
ghost-1  | [2026-09-29 21:39:04] INFO "GET /ghost/" 200 4ms
ghost-1  | [2026-09-29 21:39:04] INFO "GET /ghost/api/admin/users/me/?include=roles" 200 20ms
ghost-1  | [2026-09-29 21:39:04] INFO "GET /ghost/api/admin/site/" 200 2ms
ghost-1  | [2026-09-29 21:39:04] INFO "GET /ghost/api/admin/config/" 200 14ms
ghost-1  | [2026-09-29 21:39:04] INFO "GET /ghost/api/admin/site/" 200 3ms
ghost-1  | [2026-09-29 21:39:04] INFO "GET /ghost/api/admin/settings/?group=site%2Ctheme%2Cprivate%2Cmembers%2Cportal%2Cnewsletter%2Cemail%2Clabs%2Cslack%2Cunsplash%2Cviews%2Cfirstpromoter%2Ceditor%2Ccomments%2Canalytics%2Cannouncement%2Cpintura%2Cdonations%2Csecurity%2Csocial_web%2Cexplore%2Ctransistor" 200 59ms
ghost-1  | [2026-09-29 21:39:04] INFO "GET /ghost/api/admin/config/" 200 35ms
ghost-1  | [2026-09-29 21:39:04] INFO "GET /ghost/api/admin/users/me/?include=roles" 200 74ms
ghost-1  | [2026-09-29 21:39:04] INFO "GET /ghost/api/admin/tiers/?filter=type%3Apaid%2Bactive%3Atrue&limit=100&page=1" 200 38ms
ghost-1  | [2026-09-29 21:39:04] INFO "GET /ghost/api/admin/settings/?group=site%2Ctheme%2Cprivate%2Cmembers%2Cportal%2Cnewsletter%2Cemail%2Clabs%2Cslack%2Cunsplash%2Cviews%2Cfirstpromoter%2Ceditor%2Ccomments%2Canalytics%2Cannouncement%2Cpintura%2Cdonations%2Crecommendations%2Csecurity%2Csocial_web%2Cexplore%2Ctransistor" 200 55ms
ghost-1  | [2026-09-29 21:39:04] INFO "GET /ghost/assets/use-tinybird-token-232XxIGh.js" 200 20ms
ghost-1  | [2026-09-29 21:39:04] INFO "GET /ghost/assets/use-tinybird-query-CvwyHLTg.js" 200 37ms
ghost-1  | [2026-09-29 21:39:04] INFO "GET /ghost/assets/overview-Boc3CWrP.js" 200 40ms
ghost-1  | [2026-09-29 21:39:04] INFO "GET /ghost/api/admin/members/?limit=1" 200 56ms
ghost-1  | [2026-09-29 21:39:04] INFO "GET /ghost/assets/pagemenu-Hvkpkvke.js" 200 43ms
ghost-1  | [2026-09-29 21:39:04] INFO "GET /ghost/api/admin/themes/active/" 200 57ms
ghost-1  | [2026-09-29 21:39:04] INFO "GET /ghost/assets/page-header-D7b4yV73.js" 200 25ms
ghost-1  | [2026-09-29 21:39:04] INFO "GET /ghost/assets/dist-DS6zpxid.js" 200 7ms
ghost-1  | [2026-09-29 21:39:04] INFO "GET /ghost/assets/analytics-53FOa2wq.js" 200 3ms
ghost-1  | [2026-09-29 21:39:04] INFO "GET /ghost/assets/select-DJoVnvDy.js" 200 12ms
ghost-1  | [2026-09-29 21:39:04] INFO "GET /ghost/assets/post-utils-DKF4mfuo.js" 200 5ms
ghost-1  | [2026-09-29 21:39:04] INFO "GET /ghost/assets/posts-DZn__RoT.js" 200 10ms
ghost-1  | [2026-09-29 21:39:04] INFO "GET /ghost/assets/tags-S1CIAM7W.js" 200 9ms
ghost-1  | [2026-09-29 21:39:04] INFO "GET /ghost/assets/post-helpers-C88JBa4D.js" 200 8ms
ghost-1  | [2026-09-29 21:39:04] INFO "GET /ghost/assets/prop-types-6lTeqvom.js" 200 4ms
ghost-1  | [2026-09-29 21:39:04] INFO "GET /ghost/assets/card-DVUJGDh7.js" 200 7ms
ghost-1  | [2026-09-29 21:39:04] INFO "GET /ghost/assets/empty-indicator-B0vc9qOP.js" 200 8ms
ghost-1  | [2026-09-29 21:39:04] INFO "GET /ghost/assets/gh-chart-IV3slNoZ.js" 200 12ms
ghost-1  | [2026-09-29 21:39:04] INFO "GET /ghost/assets/_baseAssignValue-DcPokYW8.js" 200 14ms
ghost-1  | [2026-09-29 21:39:04] INFO "GET /ghost/assets/use-host-limits-B1YKzNyU.js" 200 5ms
ghost-1  | [2026-09-29 21:39:04] INFO "GET /ghost/assets/kpi-card-D5IjJwPG.js" 200 7ms
ghost-1  | [2026-09-29 21:39:04] INFO "GET /ghost/assets/use-analytics-data-QR1iwIYe.js" 200 2ms
ghost-1  | [2026-09-29 21:39:04] INFO "GET /ghost/assets/date-range-select-BjoJRHFX.js" 200 4ms
ghost-1  | [2026-09-29 21:39:04] INFO "GET /ghost/assets/trend-badge-BLXCPZoc.js" 200 9ms
ghost-1  | [2026-09-29 21:39:04] INFO "GET /ghost/assets/stats-CdU9rbm6.js" 200 7ms
ghost-1  | [2026-09-29 21:39:04] INFO "GET /ghost/assets/stats-view-CUU1wGiu.js" 200 10ms
ghost-1  | [2026-09-29 21:39:04] INFO "GET /ghost/assets/audience-BquviMeK.js" 200 7ms
ghost-1  | [2026-09-29 21:39:04] INFO "GET /ghost/assets/url-helpers-DcQbx-Xg.js" 200 9ms
ghost-1  | [2026-09-29 21:39:04] INFO "GET /ghost/assets/chart-helpers-CKi4LQ7a.js" 200 16ms
ghost-1  | [2026-09-29 21:39:04] INFO "GET /ghost/assets/chart-DmCVJycV.js" 200 50ms
ghost-1  | [2026-09-29 21:39:04] INFO "GET /ghost/assets/use-growth-stats-D44RWaEb.js" 200 17ms
ghost-1  | [2026-09-29 21:39:04] INFO "GET /ghost/assets/currency-Dy4Tc2R2.js" 200 19ms
ghost-1  | [2026-09-29 21:39:04] INFO "GET /ghost/assets/get-site-timezone-HgL0jI_F.js" 200 7ms
ghost-1  | [2026-09-29 21:39:04] INFO "GET /ghost/assets/feature-image-placeholder-CBQZPORY.js" 200 8ms
ghost-1  | [2026-09-29 21:39:04] INFO "GET /ghost/assets/post-share-modal-QkdqyjDh.js" 200 17ms
ghost-1  | [2026-09-29 21:39:04] INFO "GET /ghost/assets/share-modal-BAIRriB_.js" 200 17ms
ghost-1  | [2026-09-29 21:39:04] INFO "GET /ghost/assets/ghost-dark-69062bcf46cc7f30a084ee55c8078046.css" 200 65ms
ghost-1  | [2026-09-29 21:39:04] INFO "PUT /ghost/api/admin/users/6abc2fd6895c3600011b5c1e/?include=roles" 200 85ms
ghost-1  | [2026-09-29 21:39:04] INFO "GET /ghost/api/admin/themes/active/" 200 31ms
ghost-1  | [2026-09-29 21:39:04] INFO "GET /ghost/api/admin/notifications/" 200 34ms
ghost-1  | [2026-09-29 21:39:04] INFO "GET /ghost/assets/koenig-lexical/koenig-lexical.umd.js?v=6278a1d162" 200 143ms
ghost-1  | [2026-09-29 21:39:04] INFO "PUT /ghost/api/admin/users/6abc2fd6895c3600011b5c1e/?include=roles" 200 58ms
ghost-1  | [2026-09-29 21:39:05] INFO "PUT /ghost/api/admin/users/6abc2fd6895c3600011b5c1e/?include=roles" 200 35ms
ghost-1  | [2026-09-29 21:39:05] INFO "PUT /ghost/api/admin/users/6abc2fd6895c3600011b5c1e/?include=roles" 200 37ms
ghost-1  | [2026-09-29 21:39:05] INFO "GET /ghost/api/admin/stats/mrr/?date_from=2026-08-30" 200 70ms
ghost-1  | [2026-09-29 21:39:05] INFO "GET /ghost/api/admin/stats/subscriptions/" 200 70ms
ghost-1  | [2026-09-29 21:39:05] INFO "GET /ghost/api/admin/stats/member_count/?date_from=2026-08-30" 200 74ms
ghost-1  | [2026-09-29 21:39:05] INFO "GET /ghost/api/admin/stats/top-posts-views/?date_from=2026-08-30&date_to=2026-09-29&limit=5&timezone=UTC" 200 69ms
ghost-1  | [2026-09-29 21:39:05] INFO "GET /ghost/api/admin/posts/?filter=status%3A%5Bpublished%2Csent%5D&order=published_at+DESC&limit=1&include=authors%2Cemail%2Ccount.clicks" 200 83ms
ghost-1  | [2026-09-29 21:39:05] INFO "GET /ghost/assets/fonts/Inter-roman.var-66c6e40883646a7ad993108b2ce2da32.woff2" 200 3ms
ghost-1  | [2026-09-29 21:39:05] INFO "GET /ghost/api/admin/stats/posts/6abc2fe1895c3600011b5f3a/stats/" 200 14ms

Raw manifest

{
  "schema_version": "1.0",
  "verification_id": "ghost-v6.67.0-20260929-001",
  "app": "ghost",
  "app_version": "v6.67.0",
  "release": {
    "source_repo": "TryGhost/Ghost",
    "source_revision": "4cb7e7956356a47e2c2c240588ef32ecd9fddeaa",
    "release_tag": "v6.67.0",
    "upstream_tag": "v6.67.0",
    "image_reference": "ghost:6.67.0-alpine"
  },
  "container": {
    "image": "ghost:6.67.0-alpine",
    "digest": "sha256:7cdfce0cbaec91b166bf61f7fafa1199f7b71c8e2c42a3ac1a44279c56ad0d10",
    "manifest_digest": "sha256:1f7ecf094d54363014636c3540dbe9c368394504abaa283914e4fcf8d699f331",
    "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": "237f81cb950c07b6c704ec360fbb2a968b7fb420",
    "compose_revision": "e2edd78968ad7fc7c2f97fc2210185a8c70bbbb4",
    "tests_revision": "62380ef0fcbbfaebbb16bf5272599efd9b421bae",
    "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": "home",
        "file": "home.png",
        "url": "https://pub-7abe6acc470447c0a101cc20ce10ceee.r2.dev/screenshots/ghost/v6.67.0/home.png",
        "caption": {
          "en": "Public site",
          "zh": "站点首页"
        }
      },
      {
        "scenario": "admin",
        "file": "admin.png",
        "url": "https://pub-7abe6acc470447c0a101cc20ce10ceee.r2.dev/screenshots/ghost/v6.67.0/admin.png",
        "caption": {
          "en": "Admin console",
          "zh": "管理后台"
        }
      }
    ],
    "report_url": "",
    "workflow_run_url": "https://github.com/CoreNovaLabs/CoreNovaLaunch/actions/runs/36634443747"
  },
  "website": {
    "app": "ghost",
    "app_version": "v6.67.0",
    "verification_id": "ghost-v6.67.0-20260929-001",
    "verification_run_id": "36634443747",
    "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": "Ghost Blog",
      "zh": "Ghost 博客"
    },
    "description": {
      "en": "Open-source professional publishing platform",
      "zh": "开源专业发布平台"
    },
    "category": "cms",
    "icon": "/icons/ghost.svg",
    "featured": true,
    "tags": [
      "blog",
      "cms",
      "publishing"
    ],
    "features": [
      {
        "en": "Automated testing before each release",
        "zh": "每次发布前自动化测试"
      },
      {
        "en": "SQLite or MySQL, one-click CloudFormation deploy",
        "zh": "SQLite 或 MySQL,CloudFormation 一键部署"
      }
    ],
    "health": "passed",
    "status": "pending",
    "verified_at": "2026-09-29T21:39:06Z",
    "report_url": "",
    "workflow_run_url": "https://github.com/CoreNovaLabs/CoreNovaLaunch/actions/runs/36634443747",
    "screenshots_order": [
      "home",
      "admin"
    ],
    "deploy": {
      "documentation_url": "https://ghost.org/docs/",
      "regions": [
        "us-east-1"
      ],
      "instance_type": "t3.small",
      "data_volume_gb": 30,
      "container_port": 2368,
      "health_check_path": "/",
      "docker_image": "ghost:6.67.0-alpine",
      "extra_environment": [
        "database__client=sqlite3",
        "database__connection__filename=/var/lib/ghost/content/data/ghost.db",
        "database__useNullAsDefault=true"
      ],
      "template": {
        "url": "https://corenovalaunch-templates.s3.us-east-1.amazonaws.com/corenova-one-click.template.yaml",
        "revision": "c9350db2baff041f7af1051e500f8db9da8c749a"
      },
      "post_deploy": {
        "admin_path": "/ghost/",
        "admin_setup": {
          "en": "Open the admin path on first visit — the setup wizard walks you through creating the owner account. There are no preset credentials.",
          "zh": "首次打开后台地址会进入初始化向导,按步骤创建站长账户;没有预置账号密码。"
        },
        "notes": [
          {
            "en": "Content is stored on a retained data volume (/var/lib/ghost/content). It keeps billing after stack deletion; snapshot it, then delete the volume when no longer needed.",
            "zh": "内容保存在保留数据卷(/var/lib/ghost/content)中。删除栈后该卷仍会计费;请先创建快照,不再需要时再删除卷。"
          },
          {
            "en": "SQLite cold backup (locally restore-tested): stop the writer container, archive the entire /var/lib/ghost/content directory with numeric ownership, then restart it. Restore into an empty data mount on an isolated container using the same image digest before starting it; verify owner login, published article reads and another edit. Content exports are not full database backups. Cloud snapshot recovery is not covered by this local test.",
            "zh": "SQLite 最小冷备(已本地恢复实测):先停止写入容器,保留数字属主归档整个 /var/lib/ghost/content,再启动原容器。用相同镜像 digest 创建隔离副本,将归档恢复到空数据挂载后再启动,验证 owner 登录、已发布文章读取及再次编辑。内容导出不是整库备份;此本地测试不覆盖云快照恢复。"
          }
        ]
      },
      "cost_estimate": {
        "monthly_usd": 23,
        "note": {
          "en": "Verified default in us-east-1: ~$15.2 t3.small + $4 for 20 GB root and 30 GB data gp3 + $3.65 public IPv4 per month. Data transfer, snapshots and CloudWatch usage are extra.",
          "zh": "us-east-1 已验证默认配置:t3.small 约 $15.2/月,20GB 系统盘 + 30GB 数据盘 gp3 约 $4/月,公网 IPv4 约 $3.65/月;流量、快照和 CloudWatch 用量另计。"
        }
      },
      "data_path": "/var/lib/ghost/content",
      "app_url_env_name": "url"
    },
    "release": {
      "type": "new_version",
      "previous_version": "v6.65.0",
      "type_evidence": "rule4: minor/major change v6.65.0 -> (6, 67, 0)"
    },
    "screenshots": [
      {
        "scenario": "home",
        "file": "home.png",
        "url": "https://pub-7abe6acc470447c0a101cc20ce10ceee.r2.dev/screenshots/ghost/v6.67.0/home.png",
        "caption": {
          "en": "Public site",
          "zh": "站点首页"
        }
      },
      {
        "scenario": "admin",
        "file": "admin.png",
        "url": "https://pub-7abe6acc470447c0a101cc20ce10ceee.r2.dev/screenshots/ghost/v6.67.0/admin.png",
        "caption": {
          "en": "Admin console",
          "zh": "管理后台"
        }
      }
    ]
  },
  "verification_run_id": "36634443747",
  "verified_at": "2026-09-29T21:39:06Z"
}