返回资讯中心
外部精选
软件工程
#开发者实时流

Harmony 推出类 Discord 聊天平台,支持联邦式跨服务器互通

来源标题:Harmony: Chat like Discord. Federated like email

Harmony 上线了一个功能类似 Discord 的聊天平台,提供服务器、语音、线程和机器人,但任何人都能自建服务器,且各服务器通过 fediverse 彼此互通。该平台可在 har.mony.lol 免费使用,也能用一条命令自行部署。它还支持跨实例发送邀请、从 Mastodon 转发内容,以及空间音频。

Hacker News 最新FinalDestiny2026/11/4 · 今天12 分钟阅读

以下正文由 AI 翻译自 Hacker News 最新(原文版权归原站所有),可能存在偏差,重要内容请以原文为准。

像 Discord 那样聊天,像 email 那样互联

服务器、语音、线程和机器人,Discord 有的它都有。区别在于:任何人都能自己搭一台服务器,而且所有服务器之间都能互通,跨越整个 fediverse。 在 har.mony.lol 免费使用 · 或者用一条命令自建

fcar+ frontier collective ⌄

文本

general

playtest

└ patch notes 12

art-drop

语音 war-room

mmira tTheo yyou@har.mony.lol

#playtest v0.9 版本,反馈请发这里

mmira 21:04 新地图已推到测试服,来看看

从我自己搭的实例加入的,谁能把 #playtest 的邀请发一下?

发了。跨实例也能用,这就是重点

把我 mastodon 上的更新日志转过来了,有人在问

← 拖动标题栏。试试那个绿色地球

服务器内有文本频道和语音频道,支持线程、回复、表情回应、投票、带代码高亮的 markdown、GIF、贴纸、语音消息和私信。用起来就是你熟悉的那套。

↱ mira 1.7.9 发布了。接下来修什么?

  • 缩放:125% 时保存按钮掉出屏幕
  • 缩放:125% 时保存按钮不动了 🎉 4 🐻 2

kkei@harbor.city 21:15 投了。另外新地图里有个隐藏房间

聆听 居中

m 152px mira t 233px theo k 162px kei@harbor.city 你

空间音频,拖动即可。离得越近越响。

3 语音

直接进语音频道,不用给任何人打电话,一直挂着玩游戏。打开空间音频,每个人在地板上都有一个位置:离你近的人声音大,房间另一头的人声音小,两拨对话可以同时进行。

Harmony 使用 ActivityPub——Mastodon、Misskey 和 Pixelfed 背后的协议。你的资料和帖子能到达这些平台,上面的人也能关注你,不同 Harmony 实例的服务器之间共享成员,不需要任何人再注册一个账号。

har.mony.lol harbor.city mastodon.social misskey.io pixelfed.social chat.mycrew.net

地址

Discord 桥接会把频道、线程、回复和表情回应双向同步,这样社区可以试用 Harmony 而不必一分为二。等所有人都搬过来之后再关掉,或者永远不关。

$ curl -fsSL https://raw.githubusercontent.com/y4my4my4m/harmony/master/self-host/install.sh | bash ✓ docker,swap,端口 80/443 ? 域名 › chat.mycrew.net ✓ DNS 已指向这里 ✓ 证书 ✓ 数据库,迁移 ? 管理员邮箱 › me@mycrew.net ✓ Harmony 已在 https://chat.mycrew.net 上线 $ harmony doctor [ OK ] compose [ OK ] database [ OK ] webfinger [ OK ] memory [ OK ] migrations [ OK ] bot-gateway [WARN] 还没有备份 → harmony backup

复制

6 自建

安装脚本会检查你的机器,问几个问题,配置证书并创建管理员账号。重复运行也是安全的。之后用 harmony 命令保持它健康运行。

每个实例都可以运行一个机器人网关,提供 REST API,在合适的地方沿用 Discord 的接口形态,所以 Discord 机器人的逻辑只要换掉连接代码就能搬过来。Webhook 直接接受 Discord 的请求体,桥接 API 也对其他网络开放。

1const token = process.env.BOT_TOKEN 2const api = 'https://har.mony.lol/bot-gateway/api/v1' 3const ws = new WebSocket('wss://har.mony.lol/bot-gateway/gateway') 4const send = (op, d) => ws.send(JSON.stringify({ op, d })) 5let seq = null 6 7ws.onopen = () => send(2, { token }) 8ws.onmessage = ({ data }) => { 9 const { t, d, s } = JSON.parse(data) 10 seq = s ?? seq 11 if (t === 'READY') setInterval(() => send(1, seq), d.heartbeat_interval) 12 if (t === 'MESSAGE_CREATE' && d.content === '!ping') 13 fetch(${api}/channels/${d.channel_id}/messages, { 14 method: 'POST', 15 headers: { Authorization: Bot ${token}, 'Content-Type': 'application/json' }, 16 body: JSON.stringify({ content: 'Pong!', reply_to: d.id }), 17 }) 18}

PROMISES.md ~/harmony

8 承诺

没有人靠出卖你的注意力赚钱,也没有人要求不惜一切代价增长。旗舰实例靠捐赠运行。

导出你的数据,把账号迁移到另一台服务器或你自己的机器,你的关注者也会跟着你过去。

AGPL-3.0 意味着任何人都能运行、fork 并把它延续下去。没有任何东西被扣押在某家公司的服务器上。

服务器可以开启端到端加密,这样连运行服务器的人都读不了消息。

[隐私和加密如何工作] [阅读代码]

Harmony 是一个独立项目。没有公司,没有风投,没有增长团队。只是一群想要一个更好的地方待着的人,把它建在所有人都能看见、能提 bug、能发补丁的地方。

官方服务器是大家提问、分享作品、告诉我们哪里坏了的地方。带上你的朋友,或者带上你的整个社区。

正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。

打开原文
去社区讨论 →