Fluxer v2:开源 Discord 替代品,能自己托管了

用了这么多年 Discord,有几个痛点一直没解决:消息记录不归自己管、官方想改什么改什么、第三方客户端说封就封。如果你也想过「把聊天服务器跑在自己 NAS 上」,那最近刚发 v2 的 Fluxer 值得看看。

Fluxer 是一款开源的即时通讯和 VoIP 应用,UI 和交互跟 Discord 很像,但它完全开源(AGPLv3),支持自托管。2026 年 6 月 15 日,Fluxer 正式发布了 v2 大版本,同时把移动端代码也开源了,GitHub 仓库重新开始接受 Issue 和 PR。截至发稿时 GitHub 9.3k Star,注册用户超过 30 万。

Fluxer 官网首页

不只是 Discord 的”平替”

Fluxer 的定位很明确:做一个你可以完全掌控的聊天平台。功能上覆盖了 Discord 的核心体验:

  • 文字聊天:支持 Markdown、私聊、群聊、频道分类,跟 Discord 的逻辑基本一致
  • 语音/视频通话:跨设备加入、屏幕分享、降噪和回声消除
  • 社区管理:角色权限、审核操作、操作日志、Webhook 和 Bot 支持
  • 搜索和快捷跳转:按用户、日期过滤历史消息,键盘快捷键切频道
  • 个性化:自定义表情包和贴纸、自定义 CSS 主题、紧凑模式

这些功能在 v2 版本之前就基本做好了。v2 的重点不是堆功能,而是整理代码基础,让自托管和社区贡献能真正跑起来。

Fluxer 移动端适配

v2 到底改了啥

根据创始人 Hampus Kraft 在博客里的说明,v2 是一次「大规模重构 + 基础设施稳定性改进」。核心变化:

代码整理和模块拆分。Fluxer 是个多语言项目,TypeScript 负责前端、Erlang 管 WebSocket 连接和会话、Rust 处理消息和媒体等热路径。v2 把部署配置和自托管设置拆开了,Erlang Gateway 按功能拆了角色,Rust 服务也按用户、消息、媒体等模块独立了。

自托管文档和预构建镜像。这是最大的变化。v2 之前自托管基本靠猜,现在有了官方的 Get Started 指南,Docker 部署、Caddy 反代、PostgreSQL 数据库一条龙。虽然 API 文档还在完善中,但基本流程已经能跑了。

安全治理升级。Fluxer 在过去几个月遭遇了垃圾信息攻击、CSAM 内容传播等问题,v2 重构里包含了一大堆安全改进:垃圾信息检测、违法内容拦截、实例级别的审核工具。

GitHub 回归开放。之前因为代码变动太快,Fluxer 在 GitHub 上暂停了公开协作。v2 之后 Issues、PR、Discussion 全部重开,还挂上了 $1,500 的开发悬赏(Bounty),按优先级付酬。

Fluxer 聊天界面

自托管怎么搞

Fluxer 自托管目前的依赖不算复杂:

  • Docker:项目提供了 Docker 部署配置,包括 Caddy 作为反向代理
  • PostgreSQL:需要外挂一个 PG 数据库(12+)
  • 桌面客户端:可以连接任意 Fluxer 实例,支持多实例切换

部署目录结构在 GitHub 的 deploy/ 下面,环境变量配置在 config/env/。目前官方实例 fluxer.app 用的就是同一套代码,意味着自托管版本不会比官方差太多。

但目前有几个事要留意:

  1. API 文档还没完全写好,团队说「几天内」能搞定(写于 6 月 15 日),实际看 GitHub 提交记录,6 月 20-26 日还在修 API 文档和 CI
  2. 移动端原生 App(Flutter)还处于 alpha 阶段,完成度约 50%,iOS 需要 Plutonium 订阅才能用
  3. 联邦功能(Federation)还在设计阶段,目前自托管实例之间不能互通

移动端和桌面端

桌面端有 Windows、macOS、Linux 版本。Linux 版已经上了 Flathub,支持 x86_64 和 aarch64。

移动端这次变化比较大:Flutter 原生客户端(iOS/Android)代码已经开源到 fluxerapp/flutter_client 仓库。官方说会在未来几周上架 F-Droid、Obtainium、Google Play 和 App Store。

如果你等不及,可以先试试 Canary 移动 PWA(web.canary.fluxer.app),这是目前手机上最完整的体验。原生 App 完成度只有 50%,官方建议非技术用户先别碰。

技术栈一览

Fluxer 是个 polyglot 项目,每种语言各司其职:

技术用途
TypeScript前端/桌面端 UI,pnpm monorepo
ErlangGateway,WebSocket 连接、会话、频道、推送
Rust热路径服务:用户、消息、媒体代理、Snowflake ID
Flutter/Dart移动端(iOS + Android)
Caddy反向代理
PostgreSQL数据存储
Docker容器化部署

这个选型挺有意思。Erlang 管长连接是经典做法(WhatsApp 也是 Erlang 起家),Rust 负责高吞吐的媒体消息路径,TypeScript 搞定 UI。创始人在一篇博客里详细解释过这个架构设计。

值不值得折腾

适合谁:需要一个自托管聊天平台的小团队、开源社区、想要数据主权的个人用户。特别适合已经有 NAS 或 Home Server 的人,Docker 一条命令就能跑起来。

不太适合谁:需要跟大量 Discord 社区互通的人、对稳定性要求极高(移动端才 50% 完成度的)用户、需要联邦功能连接不同实例的场景。

几个风险点

  • 项目主要是 Hampus Kraft 一个人在扛,Bus Factor 有点高
  • 移动端离稳定还有距离
  • 联邦功能还在设计阶段,别指望很快
  • 商业化靠 Plutonium 订阅和捐赠撑着,长期可持续性待观察

小结

Fluxer v2 是一个「终于做好了自托管准备」的版本。如果你一直在找能跑在自己服务器上的 Discord 替代品,现在是个不错的入手时机。代码开源、部署简单、桌面端成熟,移动端也在快速发展。

不过别把它当成即刻可用的「Drop-in Replacement」。30 万用户对聊天应用来说算不错了,但离 Discord 的生态还很远。把它当作一个值得关注和折腾的开源项目更合适。

GitHub: github.com/fluxerapp/fluxer
官网: fluxer.app
自托管文档: docs.fluxer.app/operator/get-started

发表评论