ClearFlask 2.7.2 介绍与选型指南
ClearFlask 2.7.2 开源产品反馈/需求投票板介绍与选型:定位、Java+Node 双组件架构、DynamoDB/ES/MySQL/S3 依赖链、功能矩阵、官方快速开始,与 Fider/Astuto/Canny 量化对比(联网溯源,查询日期 2026-11-01)。
ClearFlask 2.7.2 介绍与选型指南
目标:从软件定位、架构组成、功能特性、快速开始到同类量化选型对比,全面认识 ClearFlask 开源产品反馈/需求投票板,回答「它是什么、依赖什么、适合谁、与 Fider/Astuto 等同类怎么选」。本文为纯联网溯源认知篇,全部事实标注来源与查询日期(2026-11-01),不含本地实测。
一、环境信息
本文认知素材全部来自公开网络溯源,查询日期 2026-11-01,来源清单:
| 溯源对象 | 地址 | 用途 |
|---|---|---|
| 官方仓库 README | github.com/clearflask/clearflask(raw.githubusercontent.com 直取) | 定位、架构、部署形态、环境变量、功能与限制 |
| 官方发布记录 | github.com/clearflask/clearflask/releases.atom | 版本节奏与最新稳定版 |
| 仓库元数据徽章 | shields.io(GitHub 数据源) | 星数、fork、许可证、主语言占比、提交活跃度 |
| 官方托管站 | clearflask.com | 托管服务与定价形态 |
| 官方编排文件 | clearflask-release/src/main/docker/compose/docker-compose.self-host.yml | self-host 栈组成 |
| 竞品仓库 | github.com/getfider/fider、github.com/astuto/astuto | 选型对比取证 |
二、软件概述
ClearFlask 是一款开源的产品反馈管理工具(README 自述 "Open-source Feedback Management Tool"),官方定位是商业服务 Canny 与 UserVoice 的开源替代品。典型用法:在产品官网嵌入一个反馈门户(portal),用户提交功能需求(idea)、投票、评论、订阅状态变更通知;产品团队在后台仪表盘里分拣、排期、发布路线图(roadmap),并把处理进度自动回传给反馈用户。
关键身份事实(查询日期 2026-11-01):
| 项目 | 值 | 来源 |
|---|---|---|
| 最新稳定版 | 2.7.2(发布于 2026-10-31) | releases.atom |
| 开源许可证 | Apache-2.0 | shields.io / 仓库 COPYING |
| GitHub 星数 / fork | 450 / 45 | shields.io |
| 主语言占比 | Java 49.4%(其余 TypeScript/JS 前端) | shields.io |
| 提交活跃度 | 约 571 次/年,最近提交 1 天内 | shields.io |
| 维护方 | 创始人 Matus Faro(smotana.com),单核心维护 + 社区 | README SPDX 头 |
| 商业形态 | 官方托管(clearflask.com,按量计费)+ 自托管双轨 | README "Managed Hosting" 节 |
版本节奏(releases.atom 实测抓取):2.7.2(2026-10-31)→ 2.7.1(2026-10-26)→ 2.7.0(2026-10-10)→ 2.6.0–2.6.4(2026-09-11)→ 2.5.0(2026-09-11)→ 2.4.0(2026-06-29)。近三个月连发两个 minor 与多个 patch,发布频率高、迭代活跃,但 2.6.x 五个 patch 同日打包发布也说明其发布以批量合并为主、非严格时间线。
💡 说明:社区流传 ClearFlask 是「Node.js + MongoDB + Redis」栈的说法与实查不符——它是 Java(Tomcat)后端 + React 前端 + DynamoDB 兼容存储,无 Redis,MongoDB 仅可作 DynamoDB 兼容层的替代选项。以官方 README 为准。
三、核心架构
ClearFlask 由两个自有组件加一组可替换的外部依赖构成(README "Architecture" 与 "Replace dependencies" 节):
自有组件(2 个)
| 组件 | 技术形态 | 职责 | 端口 |
|---|---|---|---|
| clearflask-server | Java / Tomcat 应用 | REST API 服务、业务逻辑、后台任务 | 8080(仅内部) |
| clearflask-connect | Node.js 服务 | SSR 页面渲染、静态文件分发、Let's Encrypt 动态证书管理、限流与封禁名单 | 9080 / 9443 |
Connect 与 Server 之间用安装时生成的共享令牌(CLEARFLASK_CONNECT_TOKEN)双向鉴权;官方明确不建议把 Server 的 8080 直接发布到公网——绕过 Connect 会失去其限流与封禁能力。
外部依赖(4 类,均可替换)
| 角色 | 默认 | 可选替代 |
|---|---|---|
| 源数据存储(NoSQL) | AWS DynamoDB | LocalStack(本地模拟)、其他 DynamoDB API 兼容服务(官方注明 ScyllaDB 不完全兼容) |
| 搜索/过滤索引 | Elasticsearch 或 MySQL 二选一 | OpenSearch / Aurora(MySQL 兼容) |
| 附件对象存储 | AWS S3 | MinIO 等 S3 API 兼容服务 |
| 外发邮件 | AWS SES | 任意 SMTP 服务器 |
可选集成:Google ReCaptcha、Let's Encrypt 自动证书、CloudFront CDN、GitHub App / GitLab / Jira / Slack OAuth 集成、LangChain(OpenAI 模型)AI 反馈摘要。
代码仓库为多模块结构:clearflask-api(前后端通信的 OpenAPI 定义)、clearflask-frontend(React 客户端 + Connect 的 Node 源码)、clearflask-server(API 实现)、clearflask-legal、clearflask-logging、clearflask-resources、clearflask-release(编排与发布物)、clearflask-helm(K8s 图表)。
💡 技术拓展:反馈板的「源数据 + 搜索索引」双存储是一种 CQRS 式取舍,同类实现路径对比——
方案 代表 特点 单一关系库 Fider、Astuto 部署最简,规模上限受单库限制 NoSQL 源数据 + 独立搜索引擎 ClearFlask(DynamoDB + ES/MySQL) 写扩展与搜索解耦,但依赖链最长 全文检索内嵌 PostgreSQL + pg_trgm 折中,依赖 PG 生态 ClearFlask 选第一行的加强版,换来云原生弹性,代价是自托管至少要起 3–4 个外部服务。
四、功能特性
按 README 与仓库代码(web/resource 各 REST 资源、security limiter 模块)梳理的功能面:
- 反馈门户(portal):idea 提交、投票、评论、@提及、状态跟踪(待办/进行中/已发布)、变更订阅与邮件/浏览器推送通知;门户可嵌入任意官网。
- 管理仪表盘(dashboard):多项目管理、路线图(roadmap)编排、反馈分拣与合并、成员与权限、品牌定制。
- 反滥用体系:分层限流(本地计数器 + Castle 第三方信誉 + Google ReCaptcha 质询)、注册滥用策略、IP 封禁名单——由 Connect 统一执行。
- 搜索与过滤:ElasticSearch(词形归并,搜 "Johnny" 命中 "Jonathan")与 MySQL(轻量、前缀匹配)两种引擎热切换,支持 JMX 在线迁移。
- 集成生态:GitHub App(issue 双向同步)、GitLab / Jira / Slack OAuth、Webhook 出站、SSO 密钥单点登录。
- AI 能力:基于 LangChain4j 接入 OpenAI 等模型,做反馈摘要/归类(仅 OpenAI 完整支持)。
- 证书与多租户域名:Connect 内置 Let's Encrypt 自动签发/续期,支持把反馈板挂到客户自有域名(官方托管版即靠此实现按域名多租户)。
- 遥测开关:
enableTelemetry可关。
五、快速开始(最小可用示例)
官方 README "Quick start" 给出的最小自托管路径(原文照录,查询日期 2026-11-01):
# 1. 下载官方编排文件 docker-compose.self-host.yml 存为 docker-compose.yml
# 2. 生成 Connect/Server 共享令牌写入 .env
echo "CLEARFLASK_CONNECT_TOKEN=$(openssl rand -hex 16)" > .env
# 3. 连同依赖(MariaDB + LocalStack)一起拉起
docker-compose --profile with-deps up
浏览器打开 http://localhost,用邮箱 admin@localhost 注册超级管理员(默认白名单正则 ^admin@localhost$),注册后建议立即把配置里的 signupEnabled 改为 false。首次启动会自动生成安装专属密钥(VAPID、游标加密、令牌签名、SSO)写入 server/config-selfhost.cfg。
部署形态三选一(README):Docker Compose(快速上手)、Kubernetes Helm 图表 helm repo add clearflask https://clearflask.github.io/clearflask(官方推荐生产,支持 HPA 与滚动升级)、Railway 一键部署(免自定义域名)。配置除编辑配置文件外,还支持约 20 个 CLEARFLASK_* 环境变量在启动时注入并强制覆盖文件值(适配 Railway/PikaPods/Elestio 等无法编辑持久文件的平台)。
完整编排部署步骤见 《ClearFlask 2.7.2 Docker Compose 部署指南》,配置项逐项详解见 《ClearFlask 2.7.2 配置参数详解》,日常命令与 API 实操见 《ClearFlask 2.7.2 常用 CLI 命令与 API 详解》。
六、适用场景与限制
适用:
- SaaS/独立产品团队要自建反馈板,替代 Canny/UserVoice 的订阅费,且已有 AWS 或愿意跑 LocalStack/MinIO 兼容层;
- 需要「反馈 → GitHub/GitLab/Jira issue 双向同步」的研发闭环;
- 需要把反馈门户按域名多租户分给不同产品线/客户;
- 数据主权要求高(Apache-2.0,无 copyleft 传染,可闭源二开)。
限制与风险(README 与仓库实查):
- 依赖链重:源数据(DynamoDB 兼容)+ 搜索(MySQL/ES)+ 附件(S3 兼容)+ 邮件(SES/SMTP)四路外部服务,最小 self-host 栈也比同类单库方案多 1–2 个组件;
- 社区规模小:450 星、单核心维护者,长期维护风险高于 Fider(4.6k 星);
- 不支持子路径部署:官方明确只能挂域名/子域根路径(
feedback.example.com),不能example.com/clearflask/; - ScyllaDB 等 DynamoDB 兼容层不完全兼容,替换 NoSQL 底座有坑;
- 前端为 React 全家桶、后端 Java,二开门槛高于 Rails/Go 同类。
七、同类选型对比
量化对比(星数/许可证/版本均 shields.io 与 releases 页实查,查询日期 2026-11-01):
| 维度 | ClearFlask 2.7.2 | Fider v0.38.2 | Astuto v1.1.2 | Canny / UserVoice(SaaS 基准) |
|---|---|---|---|---|
| GitHub 星数 | 450 | 4.6k | 2.3k | —(商业闭源) |
| 许可证 | Apache-2.0 | AGPL-3.0 | AGPL-3.0 | 商业订阅 |
| 后端栈 | Java(Tomcat)+Node.js | Go + React | Ruby on Rails | — |
| 外部依赖 | DynamoDB 兼容 + MySQL/ES + S3 兼容 + SMTP/SES | PostgreSQL | PostgreSQL | 无(托管) |
| 部署形态 | Compose / Helm / Railway | Compose / 二进制 | Compose / Heroku | SaaS |
| 投票+评论+路线图 | ✅ | ✅ | ✅ | ✅ |
| issue 双向同步 | GitHub App + GitLab + Jira | 仅挂链接 | 仅挂链接 | ✅(原生) |
| 多租户域名/自动证书 | ✅(Connect 内置 LE) | ❌ | ❌ | ✅ |
| AI 反馈摘要 | ✅(LangChain/OpenAI) | ❌ | ❌ | ✅ |
| 近 90 天发布 | 6 个版本(2.4→2.7.2) | 低频 | 低频 | — |
| 闭源二开合法性 | ✅ | ❌(AGPL) | ❌(AGPL) | — |
解读与选型建议:
- 要功能上限与集成深度(issue 同步、多租户域名、AI 摘要、可闭源商用):选 ClearFlask,代价是接受最重的依赖链与最小的社区;
- 要省心的单库部署与最大社区:选 Fider——PostgreSQL 一个依赖、4.6k 星、运维心智负担最低,但 AGPL 传染、无 issue 双向同步;
- Rails 团队想轻量二开:Astuto,功能面最窄;
- 不想自己运维:直接 Canny/UserVoice,但月费与数据出境是硬约束。
「如果……则……」速查:如果你的反馈板要挂到客户域名且担心 AGPL,则 ClearFlask 是三者中唯一 Apache-2.0 的选项;如果你的服务器内存预算低于 2 GB,则避开 ClearFlask(Java + Node + MariaDB + LocalStack 四件套),选 Fider 单二进制 + PG。
八、参考链接
- 官方仓库与 README:https://github.com/clearflask/clearflask
- 官方托管站与定价:https://clearflask.com/pricing
- 官方自托管编排文件:https://github.com/clearflask/clearflask/blob/master/clearflask-release/src/main/docker/compose/docker-compose.self-host.yml
- Helm 图表文档:https://github.com/clearflask/clearflask/blob/master/clearflask-helm/README.md
- 发布记录:https://github.com/clearflask/clearflask/releases
- Fider:https://github.com/getfider/fider / Astuto:https://github.com/astuto/astuto