Skip to main content
[ PIER ]

Matrix Synapse (SQLite)

单容器 Matrix homeserver —— 用于个人用途和测试。

Service #chat#messaging#matrix#federation#communication

默认 SQLite 后端的 Matrix Synapse,单容器。轻量、零依赖设置,用于个人 homeservers、小型家庭/朋友社区和协议测试。对于生产联邦或繁忙房间,请改用 matrix-synapse-postgresql 模板。

使用 Pier 部署

  1. 1 打开 Pier 控制台,点击 Add service。
  2. 2 从模板列表中选择 Matrix Synapse (SQLite)。
  3. 3 选择版本、设置服务名称,Pier 会自动配置容器、存储和端口。
  4. 4 如需 HTTPS,请绑定域名。Traefik 会自动签发 Let's Encrypt 证书。

什么是 Matrix Synapse (SQLite)?

同样的 Synapse —— 参考 Matrix homeserver —— 但配置为默认 SQLite 后端而不 是 PostgreSQL。结果是一个容器,易于部署,易于备份,完美用于个人 homeservers、小社区或开发工作。

你仍然获得完整的 Matrix 协议 —— 与网络上每个其他 homeserver 的联邦、 端到端加密、语音和视频、桥接到 Telegram/Discord/WhatsApp/Signal —— 只是 规模更小。

Pier 如何部署它

本模板使用官方 matrixdotorg/synapse 镜像和默认 SQLite 存储。默认端口: 8008(HTTP,在 Traefik 后,当你附加自定义域名时带 TLS)。

数据卷挂载在 /data,包含 homeserver.dbhomeserver.yaml 和媒体存储。 备份是平凡的 —— 容器暂停时卷的副本。

首次启动后,通过 docker exec 运行 register_new_matrix_user 创建管理员 用户,然后将 Element 客户端指向 homeserver URL。

何时不要使用本模板

一旦你有多于少数活跃用户,或者你开始加入有许多联邦参与者的繁忙公共房间, SQLite 就成为瓶颈。迁移到 matrix-synapse-postgresql 模板 —— Synapse 提供 synapse_port_db 脚本,一次性完成转换。

对于实验性轻量 homeservers,Dendrite (Go) 和 Conduit (Rust) 提供替代品。 对于无运维工作的托管 Matrix,存在 Element Matrix Services。自托管 SQLite Synapse 命中单用户和小组 homeservers 的最佳点。

核心功能

单容器

Synapse + SQLite 在一个镜像中。无需单独的数据库来配置、备份或协调重启。最简单的可能自托管。

完整 Matrix 协议

联邦、E2EE、桥、语音/视频通话、房间版本 —— Synapse 支持的所有规范功能与 Postgres 构建的运行方式相同。

Element 客户端到处工作

将 Element Web / iOS / Android / 桌面指向你的 homeserver URL —— 完整的 E2EE 聊天、语音、视频、文件共享。

桥接到其他平台

Telegram、Discord、WhatsApp、Signal、IRC、Slack、XMPP 桥都作为通过 appservice API 与 Synapse 通信的单独服务运行。

微小资源占用

空闲约 200 MB RAM,典型个人使用低于 1 GB。在 5 美元 VPS 上舒适运行,与几个朋友共享 homeserver。

应用场景

个人 homeserver

一个用户(你)加几个朋友的 homeserver。轻量、低维护、与 Matrix 的其余部分联邦。

家庭 / 户内聊天

为你的家庭运行 homeserver,让孩子和祖父母共享一个 Element 应用,而不是 WhatsApp + iMessage + SMS。

协议测试和开发

启动一次性 homeserver 来测试 Matrix 机器人、桥、客户端或 appservices,无需支付托管 Matrix 费用。

小社区

你正在迁出的 discord 服务器、迁移到 Matrix 的小 subreddit 或私人兴趣小组的自托管 homeserver。

代码示例

首个用户注册(管理员) bash
docker exec -it pier-synapse-sqlite \
  register_new_matrix_user \
    -u alice -p strongpassword -a \
    -c /data/homeserver.yaml \
    http://localhost:8008
发现 .well-known 文件 bash
# /.well-known/matrix/server (在顶级域名提供)
{"m.server": "matrix.example.com:443"}
# /.well-known/matrix/client
{"m.homeserver": {"base_url": "https://matrix.example.com"}}
联邦健康检查 bash
curl https://federationtester.matrix.org/api/report?server_name=matrix.example.com | jq '.FederationOK'
桥接到 Telegram yaml
services:
  mautrix-telegram:
    image: dock.mau.dev/mautrix/telegram:latest
    environment:
      HOMESERVER_URL: http://synapse:8008
    volumes:
      - ./tg:/data

对比

vs matrix-synapse-postgresql(本目录) 任何带联邦或大房间的生产部署使用 PostgreSQL 模板。SQLite 对个人/测试用途还行,但跟不上繁忙房间的联邦流量。
vs Dendrite、Conduit Go 和 Rust 的替代 Matrix homeservers。比 Synapse 更轻量但功能不太完整,经历少。Synapse 仍是参考实现。
vs matrix.org 托管 homeservers 托管 Matrix 启动快,但你失去数据主权并按用户付费。除 VPS 账单外自托管免费。

常见问题

为什么我会选择 SQLite 而不是 PostgreSQL?
更简单的部署(一个容器)、更低的空闲资源使用、无需单独的数据库备份。权衡是在联邦负载下的性能 —— 对于个人服务器还行,对于繁忙的公共 homeserver 不行。
我可以稍后从 SQLite 迁移到 PostgreSQL 吗?
是 —— Synapse 提供 synapse_port_db 脚本来迁移数据库。你将重新部署为 postgresql 模板并运行一次迁移。
SQLite homeserver 实际能处理多少用户?
个位数活跃用户使用很舒适。十几个低活动用户仍然有效。超出此范围,大房间的联邦加入开始阻塞 SQLite,你应该迁移。
桥工作吗?
是 —— 桥是通过 HTTP 与 Synapse 通信的单独 appservices,独立于数据库后端。Telegram、Discord、WhatsApp、Signal 桥都以相同方式工作。
语音和视频呢?
1 对 1 WebRTC 通话开箱即用。群组通话需要 Element Call 或 Jitsi 作为单独服务。严格 NAT 后的用户需要 coturn TURN 服务器。
备份?
备份数据卷(homeserver.db + 媒体存储)。SQLite 使这容易 —— 服务器停止时 .db 文件的副本是一致的备份。

相关服务

在你的 VPS 上部署

默认 SQLite 后端的 Matrix Synapse,单容器。轻量、零依赖设置,用于个人 homeservers、小型家庭/朋友社区和协议测试。对于生产联邦或繁忙房间,请改用 matrix-synapse-postgresql 模板。

部署此服务 →