ClearFlask 2.7.2 介绍与选型指南

ClearFlask 2.7.2 开源产品反馈/需求投票板介绍与选型:定位、Java+Node 双组件架构、DynamoDB/ES/MySQL/S3 依赖链、功能矩阵、官方快速开始,与 Fider/Astuto/Canny 量化对比(联网溯源,查询日期 2026-11-01)。

ClearFlaskClearFlask问答社区Java2026/11/01

ClearFlask 2.7.2 介绍与选型指南

目标:从软件定位、架构组成、功能特性、快速开始到同类量化选型对比,全面认识 ClearFlask 开源产品反馈/需求投票板,回答「它是什么、依赖什么、适合谁、与 Fider/Astuto 等同类怎么选」。本文为纯联网溯源认知篇,全部事实标注来源与查询日期(2026-11-01),不含本地实测。

一、环境信息

本文认知素材全部来自公开网络溯源,查询日期 2026-11-01,来源清单:

溯源对象地址用途
官方仓库 READMEgithub.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.ymlself-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.0shields.io / 仓库 COPYING
GitHub 星数 / fork450 / 45shields.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-serverJava / Tomcat 应用REST API 服务、业务逻辑、后台任务8080(仅内部)
clearflask-connectNode.js 服务SSR 页面渲染、静态文件分发、Let's Encrypt 动态证书管理、限流与封禁名单9080 / 9443

Connect 与 Server 之间用安装时生成的共享令牌(CLEARFLASK_CONNECT_TOKEN)双向鉴权;官方明确不建议把 Server 的 8080 直接发布到公网——绕过 Connect 会失去其限流与封禁能力。

外部依赖(4 类,均可替换)

角色默认可选替代
源数据存储(NoSQL)AWS DynamoDBLocalStack(本地模拟)、其他 DynamoDB API 兼容服务(官方注明 ScyllaDB 不完全兼容)
搜索/过滤索引Elasticsearch 或 MySQL 二选一OpenSearch / Aurora(MySQL 兼容)
附件对象存储AWS S3MinIO 等 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 详解》。

六、适用场景与限制

适用:

  1. SaaS/独立产品团队要自建反馈板,替代 Canny/UserVoice 的订阅费,且已有 AWS 或愿意跑 LocalStack/MinIO 兼容层;
  2. 需要「反馈 → GitHub/GitLab/Jira issue 双向同步」的研发闭环;
  3. 需要把反馈门户按域名多租户分给不同产品线/客户;
  4. 数据主权要求高(Apache-2.0,无 copyleft 传染,可闭源二开)。

限制与风险(README 与仓库实查):

  1. 依赖链重:源数据(DynamoDB 兼容)+ 搜索(MySQL/ES)+ 附件(S3 兼容)+ 邮件(SES/SMTP)四路外部服务,最小 self-host 栈也比同类单库方案多 1–2 个组件;
  2. 社区规模小:450 星、单核心维护者,长期维护风险高于 Fider(4.6k 星);
  3. 不支持子路径部署:官方明确只能挂域名/子域根路径(feedback.example.com),不能 example.com/clearflask/;
  4. ScyllaDB 等 DynamoDB 兼容层不完全兼容,替换 NoSQL 底座有坑;
  5. 前端为 React 全家桶、后端 Java,二开门槛高于 Rails/Go 同类。

七、同类选型对比

量化对比(星数/许可证/版本均 shields.io 与 releases 页实查,查询日期 2026-11-01):

维度ClearFlask 2.7.2Fider v0.38.2Astuto v1.1.2Canny / UserVoice(SaaS 基准)
GitHub 星数4504.6k2.3k—(商业闭源)
许可证Apache-2.0AGPL-3.0AGPL-3.0商业订阅
后端栈Java(Tomcat)+Node.jsGo + ReactRuby on Rails—
外部依赖DynamoDB 兼容 + MySQL/ES + S3 兼容 + SMTP/SESPostgreSQLPostgreSQL无(托管)
部署形态Compose / Helm / RailwayCompose / 二进制Compose / HerokuSaaS
投票+评论+路线图✅✅✅✅
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。

八、参考链接

ClearFlask 2.7.2 介绍与选型指南 - Quzuo