Verification Report · freshrss 1.30.1

NOT PUBLISHED   freshrss-1.30.1-20261005-001   verified_at 2026-10-05T23:27:29Z

Immutable inputs

App version1.30.1 ← release tag 1.30.1 · source 4a810f1624b9
Image (exact tag)freshrss/freshrss:1.30.1
Image digest (linux/amd64)sha256:b0dd8a83392471cb97bd66e93afc426d114ecf5027228eeec7c34c9964ab957e
Index digestsha256:48b63b9bc3d042a1301c32971b01af8841c7f059b452589c5bf77f475ba44c61
Pulled asfreshrss/freshrss:1.30.1@sha256:b0dd8a83392471cb97bd66e93afc426d114ecf5027228eeec7c34c9964ab957e via registry-1.docker.io
Platform contractami-0045d7fc2ad003464 · us-east-1/x86_64 · source=public (plat-us-east-1-x86_64-20261001-001)
Config revisionsapp 838f26dcba3b · compose e6172392b42f
Release typesecurity_update — rule2: keyword 'security patch' 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 1.30.1 — 匹配(exact):kind=exec_command 取到 '1.30.1',期望 '1.30.1'
Testspytest exit=0 .. [100%] ==================================== PASSES ==================================== =========================== short test summary info ============================ PASSED apps/freshrss/tests/test_install.py::test_root_reaches_installer PASSED apps/freshrss/tests/test_install.py::test_install_wizard_renders 2 passed in 0.99s
Container staterunning
Duration12.1s(2026-10-05T23:27:17Z → 2026-10-05T23:27:28Z)

Screenshots

install
install · Installation wizard / 安装向导

Application test output

pytest exit=0
..                                                                       [100%]
==================================== PASSES ====================================
=========================== short test summary info ============================
PASSED apps/freshrss/tests/test_install.py::test_root_reaches_installer
PASSED apps/freshrss/tests/test_install.py::test_install_wizard_renders
2 passed in 0.99s

Container logs (tail)

--- compose up ---
 freshrss Pulling 
 freshrss Pulled 
 Network cn-freshrss-ef920d7ab4b1_default  Creating
 Network cn-freshrss-ef920d7ab4b1_default  Created
 Container cn-freshrss-ef920d7ab4b1-freshrss-1  Creating
 Container cn-freshrss-ef920d7ab4b1-freshrss-1  Created
 Container cn-freshrss-ef920d7ab4b1-freshrss-1  Starting
 Container cn-freshrss-ef920d7ab4b1-freshrss-1  Started

--- container logs ---
freshrss-1  | [Mon Oct 05 23:27:25.901156 2026] [mpm_prefork:notice] [pid 1:tid 1] AH00163: Apache/2.4.68 (Debian) configured -- resuming normal operations
freshrss-1  | [Mon Oct 05 23:27:25.901249 2026] [core:notice] [pid 1:tid 1] AH00094: Command line: 'apache2 -D FOREGROUND'
freshrss-1  | 172.18.0.1 - - [05/Oct/2026:23:27:25 +0000] "GET / HTTP/1.1" 302 - "-" "Python-urllib/3.12"
freshrss-1  | 172.18.0.1 - - [05/Oct/2026:23:27:25 +0000] "GET /i/?rid=6ac4325de058f HTTP/1.1" 200 5510 "-" "Python-urllib/3.12"
freshrss-1  | 172.18.0.1 - - [05/Oct/2026:23:27:26 +0000] "GET / HTTP/1.1" 302 - "-" "python-requests/2.34.2"
freshrss-1  | 172.18.0.1 - - [05/Oct/2026:23:27:26 +0000] "GET /i/?rid=6ac4325e51d44 HTTP/1.1" 200 1794 "-" "python-requests/2.34.2"
freshrss-1  | 172.18.0.1 - - [05/Oct/2026:23:27:27 +0000] "GET / HTTP/1.1" 302 - "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/153.0.8010.12 Safari/537.36"
freshrss-1  | 172.18.0.1 - - [05/Oct/2026:23:27:27 +0000] "GET /i/?rid=6ac4325f13210 HTTP/1.1" 200 1794 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/153.0.8010.12 Safari/537.36"
freshrss-1  | 172.18.0.1 - - [05/Oct/2026:23:27:27 +0000] "GET /themes/base-theme/frss.css?1791231530 HTTP/1.1" 200 10953 "http://localhost/i/?rid=6ac4325f13210" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/153.0.8010.12 Safari/537.36"
freshrss-1  | 172.18.0.1 - - [05/Oct/2026:23:27:27 +0000] "GET /themes/Origine/origine.css?1791231530 HTTP/1.1" 200 5614 "http://localhost/i/?rid=6ac4325f13210" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/153.0.8010.12 Safari/537.36"
freshrss-1  | 172.18.0.1 - - [05/Oct/2026:23:27:27 +0000] "GET /scripts/install.js?1791231530 HTTP/1.1" 200 860 "http://localhost/i/?rid=6ac4325f13210" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/153.0.8010.12 Safari/537.36"
freshrss-1  | 172.18.0.1 - - [05/Oct/2026:23:27:27 +0000] "GET /themes/fonts/OpenSans.woff2 HTTP/1.1" 200 61980 "http://localhost/themes/base-theme/frss.css?1791231530" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/153.0.8010.12 Safari/537.36"
freshrss-1  | 172.18.0.1 - - [05/Oct/2026:23:27:27 +0000] "GET /themes/icons/FreshRSS-logo.svg HTTP/1.1" 200 1481 "http://localhost/i/?rid=6ac4325f13210" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/153.0.8010.12 Safari/537.36"
freshrss-1  | 172.18.0.1 - - [05/Oct/2026:23:27:27 +0000] "GET / HTTP/1.1" 302 - "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/153.0.8010.12 Safari/537.36"
freshrss-1  | 172.18.0.1 - - [05/Oct/2026:23:27:27 +0000] "GET /i/?rid=6ac4325fbae4d HTTP/1.1" 200 1794 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/153.0.8010.12 Safari/537.36"
freshrss-1  | 172.18.0.1 - - [05/Oct/2026:23:27:27 +0000] "GET /themes/base-theme/frss.css?1791231530 HTTP/1.1" 200 10953 "http://localhost/i/?rid=6ac4325fbae4d" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/153.0.8010.12 Safari/537.36"
freshrss-1  | 172.18.0.1 - - [05/Oct/2026:23:27:27 +0000] "GET /themes/Origine/origine.css?1791231530 HTTP/1.1" 200 5614 "http://localhost/i/?rid=6ac4325fbae4d" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/153.0.8010.12 Safari/537.36"
freshrss-1  | 172.18.0.1 - - [05/Oct/2026:23:27:27 +0000] "GET /scripts/install.js?1791231530 HTTP/1.1" 200 860 "http://localhost/i/?rid=6ac4325fbae4d" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/153.0.8010.12 Safari/537.36"
freshrss-1  | 172.18.0.1 - - [05/Oct/2026:23:27:27 +0000] "GET /themes/icons/FreshRSS-logo.svg HTTP/1.1" 200 1481 "http://localhost/i/?rid=6ac4325fbae4d" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/153.0.8010.12 Safari/537.36"
freshrss-1  | 172.18.0.1 - - [05/Oct/2026:23:27:27 +0000] "GET /themes/fonts/OpenSans.woff2 HTTP/1.1" 200 61980 "http://localhost/themes/base-theme/frss.css?1791231530" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/153.0.8010.12 Safari/537.36"

Raw manifest

{
  "schema_version": "1.0",
  "verification_id": "freshrss-1.30.1-20261005-001",
  "app": "freshrss",
  "app_version": "1.30.1",
  "release": {
    "source_repo": "FreshRSS/FreshRSS",
    "source_revision": "4a810f1624b9d0b97b4400614cf9aacc8ada40e3",
    "release_tag": "1.30.1",
    "upstream_tag": "1.30.1",
    "image_reference": "freshrss/freshrss:1.30.1"
  },
  "container": {
    "image": "freshrss/freshrss:1.30.1",
    "digest": "sha256:b0dd8a83392471cb97bd66e93afc426d114ecf5027228eeec7c34c9964ab957e",
    "manifest_digest": "sha256:48b63b9bc3d042a1301c32971b01af8841c7f059b452589c5bf77f475ba44c61",
    "platform": "linux/amd64"
  },
  "platform": {
    "platform_verification_id": "plat-us-east-1-x86_64-20261001-001",
    "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": "838f26dcba3b0c10664a80c98f563e93f33f4163",
    "compose_revision": "e6172392b42fe463865cd21408c66c6ba70bee58",
    "tests_revision": "4136a9fc8de221b57a8878a17ae7ecd5de3f5cb1",
    "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": "install",
        "file": "install.png",
        "url": "https://pub-7abe6acc470447c0a101cc20ce10ceee.r2.dev/screenshots/freshrss/1.30.1/install.png",
        "caption": {
          "en": "Installation wizard",
          "zh": "安装向导"
        }
      }
    ],
    "report_url": "",
    "workflow_run_url": "https://github.com/CoreNovaLabs/CoreNovaLaunch/actions/runs/37388516235"
  },
  "website": {
    "app": "freshrss",
    "app_version": "1.30.1",
    "verification_id": "freshrss-1.30.1-20261005-001",
    "verification_run_id": "37388516235",
    "platform_verification_id": "plat-us-east-1-x86_64-20261001-001",
    "ami_id": "ami-0045d7fc2ad003464",
    "architecture": "x86_64",
    "region": "us-east-1",
    "display_name": {
      "en": "FreshRSS",
      "zh": "FreshRSS 阅读器"
    },
    "description": {
      "en": "Self-hosted RSS feed aggregator with mobile-friendly web UI",
      "zh": "自托管 RSS 聚合阅读器"
    },
    "category": "productivity",
    "icon": "/icons/freshrss.svg",
    "featured": true,
    "tags": [
      "rss",
      "reader",
      "aggregator"
    ],
    "features": [
      {
        "en": "Unlimited feeds with auto-refresh scheduling",
        "zh": "不限订阅源,支持自动定时刷新"
      },
      {
        "en": "Mobile-friendly UI plus Fever/GReader API for third-party apps",
        "zh": "移动端友好 UI,兼容 Fever/GReader API 接入第三方客户端"
      },
      {
        "en": "Full-text extraction, tagging and dark mode",
        "zh": "全文抓取、标签与深色模式"
      }
    ],
    "health": "passed",
    "status": "pending",
    "verified_at": "2026-10-05T23:27:29Z",
    "report_url": "",
    "workflow_run_url": "https://github.com/CoreNovaLabs/CoreNovaLaunch/actions/runs/37388516235",
    "screenshots_order": [
      "install"
    ],
    "deploy": {
      "documentation_url": "https://freshrss.github.io/FreshRSS/",
      "regions": [
        "us-east-1"
      ],
      "instance_type": "t3.small",
      "data_volume_gb": 30,
      "container_port": 80,
      "health_check_path": "/",
      "docker_image": "freshrss/freshrss:1.30.1",
      "extra_environment": [],
      "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": "The first visit opens the installation wizard (language, database — keep SQLite — then the admin account form). There are no preset credentials.",
          "zh": "首次访问进入安装向导:选择语言、数据库(保持默认 SQLite)、设置管理员账户;没有预置账号密码。"
        },
        "notes": [
          {
            "en": "Feeds database and config live on a retained volume (/var/www/FreshRSS/data). It keeps billing after stack deletion; snapshot it, then delete the volume when no longer needed.",
            "zh": "订阅数据库与配置保存在保留数据卷(/var/www/FreshRSS/data)中。删除栈后该卷仍会计费;请先创建快照,不再需要时再删除卷。"
          }
        ]
      },
      "cost_estimate": {
        "monthly_usd": 23,
        "note": {
          "en": "Verified default in us-east-1: ~$15.2 t3.small + ~$4 for the 20 GB root and 30 GB data gp3 volumes + $3.65 public IPv4 per month.",
          "zh": "us-east-1 已验证默认配置:t3.small 约 $15.2/月 + 20GB 系统盘与 30GB 数据盘 gp3 约 $4/月 + 公网 IPv4 约 $3.65/月。"
        }
      },
      "data_path": "/var/www/FreshRSS/data"
    },
    "release": {
      "type": "security_update",
      "previous_version": "1.30.0",
      "type_evidence": "rule2: keyword 'security patch' in upstream release notes"
    },
    "screenshots": [
      {
        "scenario": "install",
        "file": "install.png",
        "url": "https://pub-7abe6acc470447c0a101cc20ce10ceee.r2.dev/screenshots/freshrss/1.30.1/install.png",
        "caption": {
          "en": "Installation wizard",
          "zh": "安装向导"
        }
      }
    ]
  },
  "verification_run_id": "37388516235",
  "verified_at": "2026-10-05T23:27:29Z"
}