Verification Report · memos v0.30.0

NOT PUBLISHED   memos-v0.30.0-20260911-001   verified_at 2026-09-11T06:13:14Z

Immutable inputs

App versionv0.30.0 ← release tag v0.30.0 · source 2036c1ffc1b0
Image (exact tag)neosmemo/memos:0.30.0
Image digest (linux/amd64)sha256:51a4cef418b1f173ac37139ad99de08da5b8662136007231d3ac8a0498a3095a
Index digestsha256:71a5b4738d1bed96e92112004054f0888e92791b64eb78afd79077c96e6f9327
Pulled asneosmemo/memos:0.30.0@sha256:51a4cef418b1f173ac37139ad99de08da5b8662136007231d3ac8a0498a3095a 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 c144a3349aac · compose 62d2b52bd962
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 0.30.0 — 匹配(exact):kind=api_json_path 取到 '0.30.0',期望 '0.30.0'
Testspytest exit=0 .. [100%] ==================================== PASSES ==================================== =========================== short test summary info ============================ PASSED apps/memos/tests/test_auth.py::test_healthz_ready PASSED apps/memos/tests/test_auth.py::test_auth_page_renders 2 passed in 2.68s
Container staterunning
Duration11.8s(2026-09-11T06:13:02Z → 2026-09-11T06:13:14Z)

Screenshots

auth
auth · First-run admin setup / 首次运行管理员设置

Application test output

pytest exit=0
..                                                                       [100%]
==================================== PASSES ====================================
=========================== short test summary info ============================
PASSED apps/memos/tests/test_auth.py::test_healthz_ready
PASSED apps/memos/tests/test_auth.py::test_auth_page_renders
2 passed in 2.68s

Container logs (tail)

--- compose up ---
 memos Pulling 
 memos Pulled 
 Network cn-memos_default  Creating
 Network cn-memos_default  Created
 Container cn-memos-memos-1  Creating
 Container cn-memos-memos-1  Created
 Container cn-memos-memos-1  Starting
 Container cn-memos-memos-1  Started

--- container logs ---
memos-1  | memos: starting as UID:GID 10001:10001
memos-1  | time=2026-09-11T06:13:08.865Z level=INFO msg="initializing new database with latest schema" file=migration/sqlite/LATEST.sql
memos-1  | time=2026-09-11T06:13:08.870Z level=INFO msg="database initialized successfully" schemaVersion=0.30.1
memos-1  | time=2026-09-11T06:13:08.896Z level=INFO msg="background runners started"
memos-1  | Memos 0.30.0 started successfully!
memos-1  | Data directory: /var/opt/memos
memos-1  | Database driver: sqlite
memos-1  | Server running on port 5230
memos-1  | Access your memos at: http://localhost:5230
memos-1  | Access mode: private
memos-1  | 
memos-1  | Documentation: https://usememos.com
memos-1  | Source code: https://github.com/usememos/memos
memos-1  | 
memos-1  | Happy note-taking!
memos-1  | time=2026-09-11T06:13:11.437Z level=INFO msg="client error" method=/memos.api.v1.AuthService/RefreshToken error="unauthenticated: refresh token not found"
memos-1  | time=2026-09-11T06:13:11.439Z level=INFO msg=OK method=/memos.api.v1.InstanceService/BatchGetInstanceSettings
memos-1  | time=2026-09-11T06:13:11.440Z level=INFO msg=OK method=/memos.api.v1.InstanceService/GetInstanceProfile
memos-1  | time=2026-09-11T06:13:12.777Z level=INFO msg="client error" method=/memos.api.v1.AuthService/RefreshToken error="unauthenticated: refresh token not found"
memos-1  | time=2026-09-11T06:13:12.779Z level=INFO msg=OK method=/memos.api.v1.InstanceService/GetInstanceProfile
memos-1  | time=2026-09-11T06:13:12.780Z level=INFO msg=OK method=/memos.api.v1.InstanceService/BatchGetInstanceSettings

Raw manifest

{
  "schema_version": "1.0",
  "verification_id": "memos-v0.30.0-20260911-001",
  "app": "memos",
  "app_version": "v0.30.0",
  "release": {
    "source_repo": "usememos/memos",
    "source_revision": "2036c1ffc1b0a1e1fa6a473738c2a5ef520df67f",
    "release_tag": "v0.30.0",
    "upstream_tag": "v0.30.0",
    "image_reference": "neosmemo/memos:0.30.0"
  },
  "container": {
    "image": "neosmemo/memos:0.30.0",
    "digest": "sha256:51a4cef418b1f173ac37139ad99de08da5b8662136007231d3ac8a0498a3095a",
    "manifest_digest": "sha256:71a5b4738d1bed96e92112004054f0888e92791b64eb78afd79077c96e6f9327",
    "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": "c144a3349aac05f465375a05f4f3aa05528a8162",
    "compose_revision": "62d2b52bd962510e27c35661101c6e5c0565d43e",
    "tests_revision": "e3c076b65c8f4eba93adc3b2205b6087ab6a710a"
  },
  "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": "auth",
        "file": "auth.png",
        "url": "https://pub-7abe6acc470447c0a101cc20ce10ceee.r2.dev/screenshots/memos/v0.30.0/auth.png",
        "caption": {
          "en": "First-run admin setup",
          "zh": "首次运行管理员设置"
        }
      }
    ],
    "report_url": "",
    "workflow_run_url": "https://github.com/CoreNovaLabs/CoreNovaLaunchVerify/actions/runs/34568939469"
  },
  "website": {
    "app": "memos",
    "app_version": "v0.30.0",
    "verification_id": "memos-v0.30.0-20260911-001",
    "verification_run_id": "34568939469",
    "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": "Memos",
      "zh": "Memos 笔记"
    },
    "description": {
      "en": "Lightweight, self-hosted note-taking and knowledge base",
      "zh": "轻量级自托管笔记与知识库"
    },
    "category": "productivity",
    "icon": "/icons/memos.svg",
    "featured": true,
    "tags": [
      "notes",
      "knowledge-base",
      "journal"
    ],
    "features": [
      {
        "en": "Automated testing before each release",
        "zh": "每次发布前自动化测试"
      },
      {
        "en": "Twitter-style quick capture with Markdown and visibility control",
        "zh": "类推特速记,支持 Markdown 与可见性控制"
      },
      {
        "en": "Embedded SQLite storage, one-click CloudFormation deploy",
        "zh": "内置 SQLite 存储,CloudFormation 一键部署"
      }
    ],
    "health": "passed",
    "status": "pending",
    "verified_at": "2026-09-11T06:13:14Z",
    "report_url": "",
    "workflow_run_url": "https://github.com/CoreNovaLabs/CoreNovaLaunchVerify/actions/runs/34568939469",
    "screenshots_order": [
      "auth"
    ],
    "deploy": {
      "documentation_url": "https://usememos.com/docs",
      "regions": [
        "us-east-1"
      ],
      "instance_type": "t3.small",
      "data_volume_gb": 30,
      "container_port": 5230,
      "health_check_path": "/healthz",
      "docker_image": "neosmemo/memos:0.30.0",
      "extra_environment": [],
      "post_deploy": {
        "admin_path": "/",
        "admin_setup": {
          "en": "The first visit walks you to the sign-up page; the first registered account becomes the instance owner. There are no preset credentials.",
          "zh": "首次访问进入注册页,注册的第一个账户即实例所有者;没有预置账号密码。"
        },
        "notes": [
          {
            "en": "Notes and attachments live on a retained data volume (/var/opt/memos). It keeps billing after stack deletion; snapshot it, then delete the volume when no longer needed.",
            "zh": "笔记与附件保存在保留数据卷(/var/opt/memos)中。删除栈后该卷仍会计费;请先创建快照,不再需要时再删除卷。"
          }
        ]
      },
      "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/opt/memos"
    },
    "release": {
      "type": "initial",
      "previous_version": "",
      "type_evidence": "rule1: no published versions recorded for this app"
    },
    "screenshots": [
      {
        "scenario": "auth",
        "file": "auth.png",
        "url": "https://pub-7abe6acc470447c0a101cc20ce10ceee.r2.dev/screenshots/memos/v0.30.0/auth.png",
        "caption": {
          "en": "First-run admin setup",
          "zh": "首次运行管理员设置"
        }
      }
    ]
  },
  "verification_run_id": "34568939469",
  "verified_at": "2026-09-11T06:13:14Z"
}