Matrix
Matrix 是一个新的开放式联邦化的即时通信和 VoIP 生态系统。其包含服务端、客户端和桥接工具,可以连接到已有的通信解决方案如IRC。
Arch Linux 的官方 Matrix 空间位于#public-space:archlinux.org。要想加入空间,请联系已加入空间的成员或 @heftig:archlinux.org 寻求邀请。想加入 Arch Linux CN 的官方 Matrix 房间可以参考 Arch Linux 中文社区#Matrix 房间。一些国际社区有其自己的 Matrix 房间,请参阅国际社区以了解详细信息。
对于客户端,请参阅应用程序列表/互联网#Matrix 客户端。
您可以使用已有的 Matrix 服务器如 https://matrix.org 或创建您自己的服务器。下文是创建一台广泛使用的服务器的教程。
安装
Matrix 的服务端实现 Synapse 由 matrix-synapse包 提供,其会创建一个 synapse 用户。
配置
安装完成后需要生成一个配置文件,synapse 用户应当能够读取该文件:
# generate_config --server-name my.domain.name \
--config-dir /etc/synapse \
--data-dir /var/lib/synapse \
--report-stats yes \
--generate-secrets \
--output-file /etc/synapse/homeserver.yaml
# generate_log_config -o /etc/synapse/my.domain.name.log.config \
-f /var/log/synapse/homeserver.log
# generate_signing_key --output_file /etc/synapse/my.domain.name.signing.key
# chown -R synapse:synapse /etc/synapse /var/log/synapse
请注意这会为指定的服务器名称生成相应的 SSL 和自签名证书,若您更改了服务器名称,则应重新生成。
数据库
Synapse 仅用 SQLite 测试服务器,操作时使用 Postgres。
要使用 Postgres,请安装 python-psycopg2包。
服务
matrix-synapse包 包含 systemd 服务 synapse.service,其会按照配置文件 /etc/synapse/homeserver.yaml 以用户 synapse 启动 Synapse 服务端。
用户管理
您的新 synapse 服务器需要至少一个用户,可以执行以下命令创建您的默认非 root 用户:
[synapse]$ register_new_matrix_user -c /etc/synapse/homeserver.yaml http://127.0.0.1:8008
也可以使用一个 matrix 客户端,例如 element-desktop包,或 libpurpleAUR 的 purple-matrix-gitAUR 插件。
蜘蛛爬虫
如需为链接预览等功能启用蜘蛛爬虫,请安装 python-lxml包 和 python-netaddr包。之后在 homeserver.yaml 中设定 url_preview_enabled: True。欲使 synapse 服务器拒绝指向内部服务器的 GET 请求,请设定 url_preview_ip_range_blacklist:。
可以取消一些黑名单示例的注释。把您本地的 IP 地址范围添加到列表中可以阻止 synapse 服务器尝试爬取它们。在编辑 homeserver.yaml 后,必须重启服务。
您可能感兴趣的频道
KDE 社区有一系列的 matrix 房间用于特定的应用、语言、事件等。详情请查看 https://community.kde.org/Matrix。
GNOME 社区也有一个有一系列房间的 matrix 实例用于社区即时交流。详情请查看 https://wiki.gnome.org/GettingInTouch/Matrix。
故障排除
只读文件系统
默认情况下,synapse 只能写入由服务文件设置的工作目录 (/var/lib/synapse)。当 synapse 写入另一个路径时,可能会发生写入错误,例如您设置了媒体存储于 /var/lib/matrix-synapse/media。
您可以创建一个 synapse.service 的替换单元文件并添加 ReadWritePaths=欲写入的路径 到 [Service] 节来允许 synapse 访问其他路径。
高内存占用
synapse 的内存占用可以通过安装 jemalloc包 被大幅减少[1]。要启用 jemalloc 内存管理器,环境变量 LD_PRELOAD 需要按下方示例设置。可以修改 /etc/default/synapse 文件,systemd 会自动加载该配置中的环境变量。[2]
/etc/default/synapse
LD_PRELOAD=/usr/lib/libjemalloc.so
启用 jemalloc 后,通过调整缓存设置[3]可以进一步降低内存占用。
/etc/synapse/homeserver.yaml
caches:
cache_autotuning:
max_cache_memory_usage: 1024M
target_cache_memory_usage: 758M
min_cache_ttl: 5m
只有 jemalloc 启用时,cache_autotuning 中的设置才会工作。