Hacker News 中文摘要

RSS订阅

自托管Matrix服务器五年记 -- Self-hosting a Matrix server for 5 years

文章摘要

作者分享了自己5年来自托管Matrix服务器的经验,主要用于亲友间的文字聊天和WhatsApp桥接。他认为Matrix协议的数据复制机制虽能减轻原服务器负担,但也导致跨服务器消息无法撤回。Synapse服务器是唯一支持桥接的选择,作者直接在VPS上运行Synapse、PostgreSQL和coturn,整体运行稳定可靠。

文章总结

自建Matrix服务器五年经验谈

协议与服务器选择

作者五年来在小型VPS上自建Matrix服务器(使用Synapse+PostgreSQL+coturn非容器化方案),主要用于亲友间文字聊天和WhatsApp桥接。对Matrix协议的数据复制机制存疑——当A服务器用户加入B服务器聊天室时,数据会双向同步,这种设计虽减轻源服务器负担,却导致联邦网络中的发言无法彻底删除,与隐私理念形成悖论。

Synapse实战体验

优势: - 稳定支持桥接功能 - API文档完善,可通过HTTP调用发送未加密消息 - 2020年后运行效率提升

痛点: 1. 管理缺失:需自行开发管理页面(作者开源了简易管理工具) 2. 强制联邦:初始设置默认开启联邦,仅能通过空白白名单变相禁用 3. 数据膨胀: - 数据库即便定期清理仍可能达GB级 - 状态记录表(stategroupsstate)采用只增模式,需手动压缩 - 含附件消息删除后文件仍驻留服务器 4. 账户顽疾:用户仅能停用无法彻底删除,存在GDPR合规争议

客户端对比

Element Classic: - 多平台体验统一 - 缺失图片说明功能 - 通知延迟、离线状态提示不明确 - 密钥管理流程对新手不友好

Element X(新版): - 操作延迟明显(对话加载需0.5-1秒) - 对话排序逻辑混乱 - 缺乏后台同步功能 - 必须配合ESS的"滑动同步"功能 - 通话功能不向下兼容

注册困境

新旧客户端均存在严重注册障碍: - Element X强制第三方认证,不支持基础用户名密码注册 - Element Classic移动端常提示"不支持此注册流程" - 管理员需权衡开放注册与令牌注册的安全风险

未来走向

Element公司推出的ESS社区版(需2CPU/2GB内存/Kubernetes)对小型实例过于沉重,相比XMPP方案Snikket(仅需1CPU/128MB内存)显得臃肿。作者认为Matrix生态过度倾向政企需求,计划转向更轻量的Snikket方案。

(注:原文中涉及的图片链接及技术细节已作简化处理,保留核心观点)

评论总结

Matrix评论总结

正面评价

  1. 部署与维护体验良好

    • 用户推荐使用Ansible脚本部署,认为设置简单且运行稳定(评论3:"This playbook is awesome and it’s pretty easy to set up and keep running")。
    • 长期用户反馈资源占用优化明显,PostgreSQL表现稳定(评论12:"RAM usage decreased by 60%... it flies")。
  2. 功能与隐私优势

    • 认可其联邦化和端到端加密特性(评论7:"The upside is that it is federated and at least messages and files are E2EE")。
    • 新版客户端Element X获得好评(评论8:"X is becoming a good client")。

负面评价

  1. 技术问题与稳定性

    • 加密同步失败、消息延迟严重(评论5:"encryption between mobile and webapp breaks all the time... insane delays on notifications")。
    • Dendrite服务器软件被指维护不善,存在严重缺陷(评论7:"abruptly become defunded... stopped processing messages for minutes at a time")。
  2. 生态碎片化与复杂性

    • 客户端兼容性问题突出(评论12:"I do not know how to fix calling between old and new clients")。
    • 自托管门槛过高,文档不完善(评论10:"lost days messing with coturn... docs need to point to recommended setup")。
  3. 数据管理缺陷

    • 消息清理困难,附件无法彻底删除(评论5:"loading old content took hours... eventually stopped working";评论12:"50GBs of stuff I cannot delete")。

争议性观点

  1. 联邦化是否必需

    • 有用户成功运行非联邦化家庭服务器(评论4:"had federation disabled... zero issues"),但其他讨论默认联邦化为核心特性。
  2. 协议设计理念

    • 对元数据泄漏提出批评(评论7:"room names are not encrypted... leaks metadata"),但承认现有技术限制(评论9:"No protocol can force deletion across devices")。

代表性引用

  • 部署便捷性
    "This playbook is awesome... easy to set up"(评论3)
    "Running synapse for 2 years... smooth sail"(评论15)

  • 技术痛点
    "Cannot decrypt a lot... insane delays"(评论5)
    "Dendrite... abruptly become defunded"(评论7)

  • 生态问题
    "Self-hosting complexity is out of hand"(评论16)
    "Client software felt bloated... notifications finally work on XMPP"(评论17)