news 2026/10/17 1:38:05

Fider 部署实战:Docker 三步搭好功能请求与反馈投票系统

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Fider 部署实战:Docker 三步搭好功能请求与反馈投票系统

Fider 部署实战:Docker 三步搭好功能请求与反馈投票系统

【免费下载链接】fiderOpen platform to collect and prioritize feedback项目地址: https://gitcode.com/GitHub_Trending/fi/fider

用户的功能请求散落在工单、应用商店评论和微信群里,你很难判断哪个需求最该先做。Fider 是一个开源的功能请求与反馈收集系统:用户提交建议、投票、评论,团队按票数一眼看出大家最想要什么,数据存在你自己的服务器里。

最短路径:Docker + Make 跑起来

本地跑需要 Docker 和 Node.js(22 版本,make build会用到)。仓库自带 Makefile 和 migrations/ 数据库迁移,数据库用 Postgres 即可。

git clone https://gitcode.com/GitHub_Trending/fi/fider cd fider cp .example.env .env docker compose up -d pgdev # 启动 Postgres,映射到本地 5555 端口 make migrate # 建表并执行全部迁移 make build # 构建 Go 后端 + React 前端 make run # 启动服务

访问 http://localhost:3000,健康检查接口是/_health。刚部署的实例还没有租户,直接进注册页,这正是你要的第一步。

首次使用:从注册到第一条反馈

  1. 打开 http://localhost:3000,进入注册页,填写站点名称、子域名、你的姓名和邮箱。Fider 是多租户架构,单主机模式下第一个租户就是根入口,子域名随意填。
  2. 提交后你会收到一封验证邮件。本地环境没配真实邮箱,它被 MailHog 截住了——打开 http://localhost:8025 找到这封邮件。
  3. 点击邮件里的链接,租户被激活,你以第一位管理员身份登录,浏览器跳到首页。
  4. 首页就是功能请求列表(此时为空)。点 "+ Add new",输入标题,Markdown 写点细节,发布。
  5. 刷新页面,你的第一条建议出现在列表里,状态默认是 open。✅

核心功能实操

提交建议:点 "+ Add new" 打开弹窗,输入标题和描述,可顺手打一个标签,点发布。提交立刻出现在列表顶部,状态为 open,支持 Markdown 排版,首页搜索框可以直接按标题检索。

投票与讨论:在任意一条建议上点一下箭头,投出你的票——每个用户每条建议一票,再点一次可以收回。票数实时更新,列表切到 "Most wanted" 排序后,票数高的自动排到最前。点进详情页可以评论讨论,讨论内容还会通过邮件提醒相关人。

流转状态:团队在后台打开一条建议,可以把它标成计划中(planned)、开发中(started)、已完成(completed)、已拒绝(declined)或重复(duplicate)。open 只是起点,六种状态的完整定义在 app/models/enum/post_status.go。用户侧的反馈生命周期,就是"提交 → 投票 → 状态变化"这条线。

进阶可选

配好 OAuth(GitHub、Google 等)后用户可以用账号直接登录;webhook 能把反馈事件实时推到 Slack 之类的系统;多租户模式下,每个团队还能用独立子域名各开一个 Fider。

踩坑速查

  • /_health访问不了 → 3000 端口被占或服务未起来 → 改 .env 里的PORT,再docker compose ps确认 Postgres 是 running。
  • 注册后邮箱收不到验证信 → 本地默认走 MailHog(.example.env 里EMAIL_SMTP_HOST指向它)→ 去 http://localhost:8025 里点链接;没起 MailHog 就docker compose up -d smtp。
  • 启动报 database 连接错误 →DATABASE_URL和本地端口对不上 → 改成postgres://fider:fider_pw@localhost:5555/fider?sslmode=disable。
  • make build前端构建失败 → Go / Node 版本不够 → Go 需要 1.26+,Node 用 22,升级后make clean && make build。
  • 注册填了子域名,但访问localhost:3000/你的子域名是 404 → 单主机模式下只有第一个租户走根路径 → 直接用 http://localhost:3000 即可。

部署完成,把你的第一条功能请求丢进去吧。

【免费下载链接】fiderOpen platform to collect and prioritize feedback项目地址: https://gitcode.com/GitHub_Trending/fi/fider

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/17 1:37:41

一文快速了解分布式版本控制系统Git

文章目录1 版本控制系统的分类1.1 集中式1.2 分布式2 Git的介绍3 Git工作流程图4 Git的安装与配置4.1 Git下载与安装4.2 Git基础配置5 Git本地仓库常用命令5.1 基础命令5.1.1 初始化本地仓库5.1.2 查看仓库状态5.1.3 添加到暂存区5.1.4 提交到本地仓库5.1.5 查看日志5.1.6 版本…

作者头像 李华
网站建设 2026/10/17 1:37:33

Excel 获取当前行的行数

ROW() ✍️获取当前行 ROW()1 ✍️获取当前行然后支持二次开发UNICHAR(9310ROW()1):✍️获取当前行的行数 ① 格式 (讨巧行为表示有限)

作者头像 李华
网站建设 2026/10/17 1:37:29

Structured Streaming核心原理与生产实践指南

1. 这不是传统批处理,是让数据流“活”起来的编程方式你有没有遇到过这样的场景:某天凌晨三点,运维同学突然在群里发来截图——实时大屏上某个关键指标断崖式下跌,但日志里查不到异常,监控告警也没触发。等团队手忙脚乱…

作者头像 李华
网站建设 2026/10/17 1:36:53

多视点图像从几何原理到三维重建的完整技术链路

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/17 1:36:06

Scala 手写 Kafka 生产消费实例:幂等、手动提交与背压调优

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/17 1:36:01

深度学习面试备战指南:从核心原理到现场表达

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华