跳转到主要内容

Matrix去中心化通信协议的Homeserver

项目描述

./docs/element_logo_white_bg.svg

Element Synapse - Matrix homeserver 实现

(get community support in #synapse:matrix.org) (discuss development on #synapse-dev:matrix.org) (Rendered documentation on GitHub Pages) (check license in LICENSE file) (latest version released on PyPi) (supported python versions)

Synapse 是由 Element 编写和维护的开源 Matrix homeserver 实现。 Matrix 是安全且互操作的实时通信的开放标准。您可以直接在此仓库中运行和管理源代码,该代码受 AGPL 许可证的保护。除非您有订阅,否则 Element 不提供支持。

订阅替代方案

另外,对于那些需要企业级解决方案的用户,Element Server Suite (ESS) 以订阅形式提供。ESS 基于 Synapse 提供完整的基于 Matrix 的后端,包括完整的 管理控制台产品,使管理员能够轻松地管理整个组织的部署。它包括高级身份管理、审计、内容审查和数据保留选项,以及长期支持和 SLA。ESS 可以用于支持任何基于 Matrix 的前端客户端。

🛠️ 安装和配置

Synapse 文档描述了 如何安装 Synapse。我们建议使用 Docker 镜像Matrix.org 的 Debian 软件包

Synapse 有各种 配置选项,可以在安装后用于自定义其行为。有关如何在此处 配置 Synapse 进行联盟 的详细信息。

使用 Synapse 的反向代理

建议在 Synapse 前放置反向代理,例如 nginxApacheCaddyHAProxyrelayd。这样做的一个优点是,您可以在不运行带有 root 权限的 Synapse 的情况下,将默认的 https 端口 (443) 暴露给 Matrix 客户端。有关配置的信息,请参阅 反向代理文档

升级现有 Synapse

升级Synapse的说明请参阅升级笔记。请仔细检查这些说明,因为某些版本的Synapse升级可能需要额外的步骤。

平台依赖项

Synapse使用了一些平台依赖项,如Python和PostgreSQL,并旨在遵循支持的上游版本。有关详细信息,请参阅弃用策略

安全注意事项

Matrix在某些API中提供原始的用户提供的数据——具体来说是在内容存储端点

虽然我们尽力减轻XSS攻击的风险(例如,通过使用CSP),但Matrix homeserver不应托管在其他托管其他Web应用程序的域上。这尤其适用于与Matrix Web客户端和其他敏感应用程序(如Webmail)共享域。有关更多信息,请参阅https://developer.github.com/changes/2014-04-25-user-content-security

理想情况下,homeserver不应简单地位于不同的子域上,而应位于完全不同的注册域上(也称为顶级站点或eTLD+1)。这是因为只要两个应用程序共享同一注册域,一些攻击仍然可能发生。

例如,如果您的Element Web或其他敏感Web应用程序托管在A.example1.com上,您最好将Synapse托管在example2.com上。在某些情况下,托管在B.example1.com上也可以提供一些保护,因此这也是可以接受的。但是,您不应将Synapse托管在A.example1.com上。

请注意,上述所有内容仅限于Synapse的public_baseurl设置中使用的域。特别是,它与MXID在该服务器上提到的域无关。

遵循此建议可以确保即使发现Synapse中的XSS,对其他应用程序的影响也将是最小的。

🧪 测试新安装

尝试您的新Synapse安装的最简单方法是使用Web客户端连接到它。

除非您正在本地机器上运行Synapse的测试实例,否则通常您需要在客户端成功连接之前启用TLS支持:请参阅TLS证书

开始的一个简单方法是登录或注册Element https://app.element.io/#/login 或分别通过https://app.element.io/#/register。您需要将登录到的服务器从matrix.org更改为指定Homeserver URL为https://<server_name>:8448(如果使用反向代理,则只需https://<server_name>)。如果您想使用其他客户端,请参阅我们的客户端概述

如果一切顺利,您至少应该能够登录、创建房间并开始发送消息。

从客户端注册新用户

默认情况下,通过Matrix客户端注册新用户被禁用。要启用它

  1. 注册配置部分中,将homeserver.yaml中的enable_registration: true设置。

  2. 然后

    1. 设置CAPTCHA,或者

    2. homeserver.yaml中设置enable_registration_without_verification: true

我们强烈建议使用CAPTCHA,尤其是如果您的homeserver暴露在公共互联网上。如果没有它,任何人都可以自由地在您的homeserver上注册账户。这可能被攻击者利用来创建针对Matrix联邦其余部分的垃圾邮件机器人。

您的新用户名将部分由 服务器名 组成,部分由您在创建账户时指定的本地部分组成。您的名字将采用以下形式

@localpart:my.domain.name

(发音为“在我的本地部分上我的点域名点名称”)。

就像登录时一样,您需要指定一个“自定义服务器”。在“用户名”框中指定您想要的 本地部分

🎯 故障排除和支持

🚀 专业支持

企业级支持Synapse,包括SLA,作为 Element服务器套件(ESS) 订阅的一部分提供。

如果您是现有的ESS订阅者,则可以提出 支持请求 并访问 知识库

🤝 社区支持

管理员FAQ 包含处理一些常见问题的技巧。有关更多详细信息,请参阅 Synapse的完整文档

如需安装或管理Synapse的额外支持,请访问社区支持室 #synapse:matrix.org(如果需要,从matrix.org账户访问)。我们不使用GitHub问题用于支持请求,仅用于错误报告和功能请求。

🪪 身份服务器

身份服务器负责将电子邮件地址和其他第三方ID(3PIDs)映射到Matrix用户ID,并在创建映射之前验证3PIDs的所有权。

它们不是存储账户或凭证的地方 - 这些存储在主服务器上。身份服务器仅用于将第三方ID映射到矩阵ID。

此过程非常敏感,因为如果注册Matrix账户或收集3PID数据过于容易,就会存在明显的垃圾邮件风险。从长远来看,我们希望创建一个去中心化系统来管理它(matrix-doc #712),但在此期间,管理Matrix生态系统中可信身份的角色由一组已知的可信生态合作伙伴承担,他们运行“Matrix身份服务器”如Sydent,其作用纯粹是进行身份验证和跟踪3PID登录以及发布最终用户的公钥。

您可以托管自己的Sydent副本,但这将阻止您通过电子邮件地址联系Matrix生态系统中的其他用户,并阻止他们找到您。因此,我们建议您现在使用位于 https://matrix.orghttps://vector.im 的集中式身份服务器。

重申一下:只有在您选择将电子邮件地址与您的账户关联或通过电子邮件地址向其他用户发送邀请时,才会使用身份服务器。

🛠️ 开发

我们欢迎社区为Synapse做出贡献!开始的最佳地方是我们的 贡献者指南。这是我们的更大 文档 的一部分,其中包括

有关Synapse开发者和管理员的资料。开发者可能特别感兴趣的是

除此之外,加入我们的Matrix开发者社区: #synapse-dev:matrix.org,这里有真实的人类!

项目详情


发布历史 发布通知 | RSS源

下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分发

matrix_synapse-1.116.0.tar.gz (3.7 MB 查看哈希值)

上传时间:

构建分发

matrix_synapse-1.116.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.1 MB 查看哈希值)

上传时间: PyPy manylinux: glibc 2.17+ x86-64

matrix_synapse-1.116.0-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux_2_5_i686.manylinux1_i686.manylinux2014_i686.whl (4.1 MB 查看哈希值)

上传时间: PyPy manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

matrix_synapse-1.116.0-pp310-pypy310_pp73-macosx_12_0_x86_64.whl (4.0 MB 查看哈希值)

上传于 PyPy macOS 12.0+ x86-64

matrix_synapse-1.116.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.1 MB 查看哈希值)

上传于 PyPy manylinux: glibc 2.17+ x86-64

matrix_synapse-1.116.0-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux_2_5_i686.manylinux1_i686.manylinux2014_i686.whl (4.1 MB 查看哈希值)

上传于 PyPy manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

matrix_synapse-1.116.0-pp39-pypy39_pp73-macosx_12_0_x86_64.whl (4.0 MB 查看哈希值)

上传于 PyPy macOS 12.0+ x86-64

matrix_synapse-1.116.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.1 MB 查看哈希值)

上传于 PyPy manylinux: glibc 2.17+ x86-64

matrix_synapse-1.116.0-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux_2_5_i686.manylinux1_i686.manylinux2014_i686.whl (4.1 MB 查看哈希值)

上传于 PyPy manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

matrix_synapse-1.116.0-pp38-pypy38_pp73-macosx_12_0_x86_64.whl (4.0 MB 查看哈希值)

上传于 PyPy macOS 12.0+ x86-64

matrix_synapse-1.116.0-cp38-abi3-musllinux_1_2_x86_64.whl (4.2 MB 查看哈希值)

上传于 CPython 3.8+ musllinux: musl 1.2+ x86-64

matrix_synapse-1.116.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.1 MB 查看哈希值)

上传于 CPython 3.8+ manylinux: glibc 2.17+ x86-64

matrix_synapse-1.116.0-cp38-abi3-manylinux_2_17_i686.manylinux_2_5_i686.manylinux1_i686.manylinux2014_i686.whl (4.1 MB 查看哈希值)

上传于 CPython 3.8+ manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

matrix_synapse-1.116.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.1 MB 查看哈希值)

上传于 CPython 3.8+ manylinux: glibc 2.17+ ARM64

matrix_synapse-1.116.0-cp38-abi3-macosx_12_0_x86_64.whl (4.0 MB 查看哈希值)

上传于 CPython 3.8+ macOS 12.0+ x86-64