Verification Report · freshrss 1.30.0

NOT PUBLISHED   freshrss-1.30.0-20260911-001   verified_at 2026-09-11T10:51:31Z

Immutable inputs

App version1.30.0 ← release tag 1.30.0 · source 62eb3b405e94
Image (exact tag)freshrss/freshrss:1.30.0
Image digest (linux/amd64)sha256:e885cd223c96b895086f59d4e8642aa5d8eff83352619f65a56931e084fc2fdc
Index digestsha256:258b8edfc8a76a61f60d2d6a14d8f8d12495d78abf38646a2137612dfa264a21
Pulled asfreshrss/freshrss:1.30.0@sha256:e885cd223c96b895086f59d4e8642aa5d8eff83352619f65a56931e084fc2fdc 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 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.0 — 匹配(exact):kind=exec_command 取到 '1.30.0',期望 '1.30.0'
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 1.60s
Container staterunning
Duration17.6s(2026-09-11T10:51:13Z → 2026-09-11T10:51:31Z)

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 1.60s

Container logs (tail)

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

--- container logs ---
freshrss-1  | [Fri Sep 11 10:51:27.350906 2026] [mpm_prefork:notice] [pid 1:tid 1] AH00163: Apache/2.4.68 (Debian) configured -- resuming normal operations
freshrss-1  | [Fri Sep 11 10:51:27.351006 2026] [core:notice] [pid 1:tid 1] AH00094: Command line: 'apache2 -D FOREGROUND'
freshrss-1  | 172.18.0.1 - - [11/Sep/2026:10:51:27 +0000] "GET / HTTP/1.1" 302 - "-" "Python-urllib/3.12"
freshrss-1  | 172.18.0.1 - - [11/Sep/2026:10:51:27 +0000] "GET /i/?rid=6aa3dd2f56cf0 HTTP/1.1" 200 5443 "-" "Python-urllib/3.12"
freshrss-1  | 172.18.0.1 - - [11/Sep/2026:10:51:28 +0000] "GET / HTTP/1.1" 302 - "-" "python-requests/2.34.2"
freshrss-1  | 172.18.0.1 - - [11/Sep/2026:10:51:28 +0000] "GET /i/?rid=6aa3dd302b847 HTTP/1.1" 200 1775 "-" "python-requests/2.34.2"
freshrss-1  | 172.18.0.1 - - [11/Sep/2026:10:51:29 +0000] "GET / HTTP/1.1" 302 - "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/151.0.7922.34 Safari/537.36"
freshrss-1  | 172.18.0.1 - - [11/Sep/2026:10:51:29 +0000] "GET /i/?rid=6aa3dd3151eb4 HTTP/1.1" 200 1775 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/151.0.7922.34 Safari/537.36"
freshrss-1  | 172.18.0.1 - - [11/Sep/2026:10:51:29 +0000] "GET /themes/Origine/origine.css?1788965037 HTTP/1.1" 200 5614 "http://localhost/i/?rid=6aa3dd3151eb4" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/151.0.7922.34 Safari/537.36"
freshrss-1  | 172.18.0.1 - - [11/Sep/2026:10:51:29 +0000] "GET /themes/base-theme/frss.css?1788965037 HTTP/1.1" 200 10911 "http://localhost/i/?rid=6aa3dd3151eb4" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/151.0.7922.34 Safari/537.36"
freshrss-1  | 172.18.0.1 - - [11/Sep/2026:10:51:29 +0000] "GET /scripts/install.js?1788965037 HTTP/1.1" 200 860 "http://localhost/i/?rid=6aa3dd3151eb4" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/151.0.7922.34 Safari/537.36"
freshrss-1  | 172.18.0.1 - - [11/Sep/2026:10:51:29 +0000] "GET /themes/icons/FreshRSS-logo.svg HTTP/1.1" 200 1950 "http://localhost/i/?rid=6aa3dd3151eb4" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/151.0.7922.34 Safari/537.36"
freshrss-1  | 172.18.0.1 - - [11/Sep/2026:10:51:29 +0000] "GET /themes/fonts/OpenSans.woff2 HTTP/1.1" 200 61980 "http://localhost/themes/base-theme/frss.css?1788965037" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/151.0.7922.34 Safari/537.36"
freshrss-1  | 172.18.0.1 - - [11/Sep/2026:10:51:29 +0000] "GET / HTTP/1.1" 302 - "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/151.0.7922.34 Safari/537.36"
freshrss-1  | 172.18.0.1 - - [11/Sep/2026:10:51:29 +0000] "GET /i/?rid=6aa3dd31e294e HTTP/1.1" 200 1775 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/151.0.7922.34 Safari/537.36"
freshrss-1  | 172.18.0.1 - - [11/Sep/2026:10:51:29 +0000] "GET /themes/Origine/origine.css?1788965037 HTTP/1.1" 200 5614 "http://localhost/i/?rid=6aa3dd31e294e" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/151.0.7922.34 Safari/537.36"
freshrss-1  | 172.18.0.1 - - [11/Sep/2026:10:51:29 +0000] "GET /themes/base-theme/frss.css?1788965037 HTTP/1.1" 200 10911 "http://localhost/i/?rid=6aa3dd31e294e" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/151.0.7922.34 Safari/537.36"
freshrss-1  | 172.18.0.1 - - [11/Sep/2026:10:51:29 +0000] "GET /scripts/install.js?1788965037 HTTP/1.1" 200 860 "http://localhost/i/?rid=6aa3dd31e294e" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/151.0.7922.34 Safari/537.36"
freshrss-1  | 172.18.0.1 - - [11/Sep/2026:10:51:29 +0000] "GET /themes/icons/FreshRSS-logo.svg HTTP/1.1" 200 1950 "http://localhost/i/?rid=6aa3dd31e294e" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/151.0.7922.34 Safari/537.36"
freshrss-1  | 172.18.0.1 - - [11/Sep/2026:10:51:29 +0000] "GET /themes/fonts/OpenSans.woff2 HTTP/1.1" 200 61980 "http://localhost/themes/base-theme/frss.css?1788965037" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/151.0.7922.34 Safari/537.36"

Raw manifest

{
  "schema_version": "1.0",
  "verification_id": "freshrss-1.30.0-20260911-001",
  "app": "freshrss",
  "app_version": "1.30.0",
  "release": {
    "source_repo": "FreshRSS/FreshRSS",
    "source_revision": "62eb3b405e94dd7bc9f1e9e9c788ee3f69d6ed74",
    "release_tag": "1.30.0",
    "upstream_tag": "1.30.0",
    "image_reference": "freshrss/freshrss:1.30.0"
  },
  "container": {
    "image": "freshrss/freshrss:1.30.0",
    "digest": "sha256:e885cd223c96b895086f59d4e8642aa5d8eff83352619f65a56931e084fc2fdc",
    "manifest_digest": "sha256:258b8edfc8a76a61f60d2d6a14d8f8d12495d78abf38646a2137612dfa264a21",
    "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": "838f26dcba3b0c10664a80c98f563e93f33f4163",
    "compose_revision": "e6172392b42fe463865cd21408c66c6ba70bee58",
    "tests_revision": "4136a9fc8de221b57a8878a17ae7ecd5de3f5cb1"
  },
  "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.0/install.png",
        "caption": {
          "en": "Installation wizard",
          "zh": "安装向导"
        }
      }
    ],
    "report_url": "",
    "workflow_run_url": "https://github.com/CoreNovaLabs/CoreNovaLaunchVerify/actions/runs/34591157746"
  },
  "website": {
    "app": "freshrss",
    "app_version": "1.30.0",
    "verification_id": "freshrss-1.30.0-20260911-001",
    "verification_run_id": "34591157746",
    "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": "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-09-11T10:51:31Z",
    "report_url": "",
    "workflow_run_url": "https://github.com/CoreNovaLabs/CoreNovaLaunchVerify/actions/runs/34591157746",
    "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.0",
      "extra_environment": [],
      "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": "",
      "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.0/install.png",
        "caption": {
          "en": "Installation wizard",
          "zh": "安装向导"
        }
      }
    ]
  },
  "verification_run_id": "34591157746",
  "verified_at": "2026-09-11T10:51:31Z"
}