Matrix Synapse with PostgreSQL
Matrix 参考 homeserver —— 开箱即用接入 PostgreSQL。
Matrix Synapse 是 Matrix 协议的参考 homeserver 实现 —— 一个开放的、去中心化的联邦标准,用于实时聊天、语音、视频和端到端加密消息。本模板提供 Synapse 加 PostgreSQL 后端(Synapse 唯一支持生产的数据库),预连线以便联邦和大房间从第一天起就能正确运行。
使用 Pier 部署
- 1 打开 Pier 控制台,点击 Add service。
- 2 从模板列表中选择 Matrix Synapse with PostgreSQL。
- 3 选择版本、设置服务名称,Pier 会自动配置容器、存储和端口。
- 4 如需 HTTPS,请绑定域名。Traefik 会自动签发 Let's Encrypt 证书。
什么是 Matrix Synapse?
Matrix 是去中心化、联邦实时通信的开放标准 —— 聊天、语音、视频、文件、 端到端加密。Synapse 是参考 homeserver:原始实现,由 Matrix.org 基金会 用 Python 维护,每个规范功能首先在这里发布。
运行 Synapse homeserver,你的用户(alice:example.com、bob:example.com)可与 任何其他 Matrix 服务器上的用户聊天 —— 像电子邮件但用于聊天。桥将 Matrix 房间链接到 Telegram、Discord、Slack、WhatsApp、Signal、IRC 等,因此单个 Element 客户端可显示每次对话。
Pier 如何部署它
本模板在一个 Compose 栈中运行 Synapse 加专用 PostgreSQL 后端。Postgres 是 Synapse 唯一支持生产的数据库 —— SQLite 跟不上繁忙房间的联邦加入。
默认端口:8008(HTTP,在 Traefik 后)。你在 Pier 附加自定义域名,Traefik
处理 TLS。Synapse 需要 Matrix 服务器名与顶级域名上的 .well-known/matrix/server
文件匹配;在 Pier env 变量中配置或从单独的 Pier 服务提供。
首次启动后,通过 docker exec 使用 register_new_matrix_user 创建管理员
用户。然后将任何 Element 客户端指向你的 homeserver URL 以登录。
何时不要使用 Matrix Synapse
如果你只需要单组织封闭聊天(无联邦、无桥),更轻的替代品如 Mattermost 更易操作。如果你想要尖端规范功能但更小的服务器,对于个人/测试用途尝试 matrix-synapse-sqlite(本目录),或 Dendrite / Conduit 作为实验性轻量 homeserver。Synapse 仍是任何联邦繁重或桥繁重部署的正确答案。
核心功能
联邦设计
你的 homeserver 与开放网络上每个其他 Matrix 服务器通信。你域名上的用户可加入任何地方托管的房间,反之亦然 —— 像电子邮件,但用于聊天。
端到端加密
通过 Olm/Megolm Double Ratchet 的原生 E2EE。私信和私人房间使用每设备密钥加密;服务器从不看到明文。
桥接到一切
Matrix 桥将房间连接到 Telegram、Discord、Slack、WhatsApp、Signal、IRC、XMPP、Mattermost —— 在不强迫每个联系人迁移的情况下,在 Matrix 上运行你的团队聊天。
语音、视频和会议
通过 WebRTC 的 1 对 1 通话;通过 Element Call 或 Jitsi 桥的群组通话。使用 SFU 扩展到数十名参与者的会议。
PostgreSQL 后端
Synapse 唯一支持生产的数据库 —— SQLite 跟不上联邦流量。本模板将 Synapse 连线到专用 Postgres,让你跳过最常见的扩展陷阱。
开放治理
由 Matrix.org 基金会(非营利)维护规范。任何人都可运行 homeserver,任何人都可实现客户端。没有供应商控制协议。
应用场景
自托管团队聊天
用你的组织拥有的 homeserver 替换 Slack / Discord / Teams。Element web/移动/桌面客户端提供精致的 UX,不会失去数据主权。
社区 / 项目聊天
为开源项目、大学或 DAO 运行社区 Matrix 服务器。联邦意味着用户如果已有 Matrix 身份,可保留它。
高信任环境的安全消息
政府(法国、德国、瑞典)、国防承包商和医疗保健组织为无法批准 Slack/Teams 的 E2EE 消息部署 Matrix。
桥接团队工作空间
一个 Element 客户端显示你的 Matrix 房间 + 桥接的 Telegram、WhatsApp 和 Discord 频道。停止在四个聊天应用之间切换标签。
机器人平台和 ChatOps
Matrix 的开放 API 和机器人框架(matrix-bot-sdk、maubot)使自动化比围墙花园的替代品更简单。
代码示例
docker exec -it pier-synapse-synapse \
register_new_matrix_user \
-u alice \
-p strongpassword \
-a \
-c /data/homeserver.yaml \
http://localhost:8008 curl https://federationtester.matrix.org/api/report?server_name=matrix.example.com | jq . # /.well-known/matrix/server (端口 443 的 matrix.example.com)
{"m.server": "matrix.example.com:443"}
# /.well-known/matrix/client
{
"m.homeserver": { "base_url": "https://matrix.example.com" },
"m.identity_server": { "base_url": "https://vector.im" }
} curl -X POST -H "Authorization: Bearer $ADMIN_TOKEN" \
-d '{"deactivated": true}' \
https://matrix.example.com/_synapse/admin/v1/deactivate/@spammer:matrix.example.com 对比
| vs Element(客户端)+ Synapse(服务器) | Element 是最流行的 Matrix 客户端;Synapse 是参考服务器。本模板提供服务器。Element 客户端(web、iOS、Android、桌面)从任何地方连接 —— 将它们指向你的 homeserver URL。 |
| vs Dendrite、Conduit | Go 和 Rust 的替代 Matrix homeserver。比 Synapse 轻量但功能不太完整。Synapse 仍是联邦繁重部署的生产默认。 |
| vs Mattermost / Rocket.Chat | 封闭联邦(每个组织一个服务器)。更易于操作但无跨组织联邦、无 Matrix 桥、DM 中默认无 E2EE。需要开放联邦时选 Matrix;单组织封闭部署选 Mattermost/Rocket。 |
| vs Slack / Discord / Teams | 仅 SaaS、无自托管、无 E2EE、围墙花园。Matrix 是开放替代 —— 联邦、自托管、DM 中默认 E2EE。 |
常见问题
为什么用 PostgreSQL 而不是 SQLite?
我需要什么域名配置?
如何禁用开放注册?
语音和视频呢?
单个 Synapse 能多大?
桥接到其他平台?
备份?
相关服务
在你的 VPS 上部署
Matrix Synapse 是 Matrix 协议的参考 homeserver 实现 —— 一个开放的、去中心化的联邦标准,用于实时聊天、语音、视频和端到端加密消息。本模板提供 Synapse 加 PostgreSQL 后端(Synapse 唯一支持生产的数据库),预连线以便联邦和大房间从第一天起就能正确运行。
部署此服务 →