Madic-.matrix-synapse-auto-deploy
matrix-org/synapse的自动部署
这个 ansible 角色可以在任何服务器上自动部署一个准备好的 matrix 服务器。与 matrix-docker-ansible-deploy 角色不同,它不使用 docker,而是使用 python3 虚拟环境,至少对 synapse 来说是这样。
服务
该角色在您的服务器上配置以下服务:
Synapse:Matrix 的“家庭服务器”参考实现,由 matrix.org 的核心开发团队提供
Coturn:用于 WebRTC 音视频通话的 STUN/TURN 服务器
nginx:为 riot.web 提供的 web 服务器,作为 synapse 和 mxisd 的反向代理
postgresql:用于 synapse 和 mxisd 的数据库
Riot:为您的家庭服务器预配置的 WebUI
Let's Encrypt:用于 Riot 和 Synapse 的 TLS 证书
小型 架构概述
前提要求
- Git
- Ansible >= 2.6
- DNS 条目
- A 记录
- matrix-machine.yourdomain.tld 的 A 记录
- riot-webclient.yourdomain.tld 的 A 记录
- SRV 记录
_matrix._tcp.yourdomain.tld. 3600 IN SRV 10 5 443 matrix-machine.yourdomain.tld.
_matrix-identity._tcp.yourdomain.tld. 3600 IN SRV 10 5 443 matrix-machine.yourdomain.tld.
- A 记录
您需要有这样的 SRV 条目,以告知其他家庭服务器它们需要在哪个端口进行通信。 此外,还将在 {{ matrix_well_known_location }} 下创建 .well-known 文件。您可以将这些文件移动到为您的顶级域名提供服务的服务器上。
支持的操作系统
- Ubuntu 18.04
- Debian 9
它也应该能在任何支持 systemd 的操作系统上运行。您可以随意测试并给我反馈(或者提交 PR 以支持您喜欢的系统)。
安装
所有变量都定义在 roles/matrix-synapse-auto-deploy/defaults/main.yml 中。您需要根据自己的需求进行调整。请查看 playbook.example.yml 文件以获取最重要的变量。
ansible-playbook playbook.example.yml --extra-vars "host=matrix.domain.com" -b -K
享受吧
您现在可以通过 riot webclient 连接到您的家庭服务器,或者在任何其他客户端上指定您的家庭服务器。