Verification Report · freshrss 1.30.0
NOT PUBLISHED
freshrss-1.30.0-20260911-001
verified_at 2026-09-11T10:51:31Z
Immutable inputs
| App version | 1.30.0 ← release tag 1.30.0 · source 62eb3b405e94 |
| Image (exact tag) | freshrss/freshrss:1.30.0 |
| Image digest (linux/amd64) | sha256:e885cd223c96b895086f59d4e8642aa5d8eff83352619f65a56931e084fc2fdc |
| Index digest | sha256:258b8edfc8a76a61f60d2d6a14d8f8d12495d78abf38646a2137612dfa264a21 |
| Pulled as | freshrss/freshrss:1.30.0@sha256:e885cd223c96b895086f59d4e8642aa5d8eff83352619f65a56931e084fc2fdc via registry-1.docker.io |
| Platform contract | ami-025d99823a4caad37 · us-east-1/x86_64 · source=public (plat-us-east-1-x86_64-20260909-001) |
| Config revisions | app 838f26dcba3b · compose e6172392b42f |
| Release type | security_update — rule2: keyword 'security patch' in upstream release notes |
Publish gate
| Check | Field | Result |
|---|
| Compose started | checks.compose_started | Passed |
| Container healthy | checks.container_healthy | Passed |
| Health check passed | checks.health_check_passed | Passed |
| Application tests | checks.tests_passed | Passed |
| Screenshots captured | checks.screenshots_generated | Passed |
| Screenshots published | checks.screenshots_uploaded | Failed |
| Report published | checks.report_uploaded | Failed |
| Manifest published | checks.verification_manifest_uploaded | Failed |
| Platform contract valid | checks.required_platform_contract_valid | Passed |
Evidence
| Health probe | HTTP 200 — ready |
| Version assertion | True actual 1.30.0 — 匹配(exact):kind=exec_command 取到 '1.30.0',期望 '1.30.0' |
| Tests | 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 state | running |
| Duration | 17.6s(2026-09-11T10:51:13Z → 2026-09-11T10:51:31Z) |
Screenshots

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"
}