Matrix
Matrix 是一个雄心勃勃的全新生态系统,用于开放的联邦式即时消息和 VoIP。它由服务器、客户端 和 桥接 软件组成,用于连接到现有的消息解决方案,如 IRC。
Arch Linux 的 Matrix 频道位于 #archlinux:archlinux.org。一些国际社区有他们自己的 Matrix 房间;有关详细信息,请参阅 国际社区。
关于客户端,请参阅 应用程序列表/互联网#Matrix 客户端。
您可以选择使用像 https://matrix.org 这样的现有服务器,或者托管您自己的 Synapse 服务器,这将在下面描述。
安装
参考服务器实现 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 服务器旨在通过互联网访问,则强烈建议配置 反向代理。
数据库
Synapse 仅使用 SQLite 进行服务器测试,Postgres 用于实际运行。
要使用 Postgres,您需要安装 python-psycopg2 软件包。
您可以在官方网站上阅读更多关于安装和配置的信息:使用 Postgres
服务
synapse.service
systemd 服务包含在 matrix-synapse 软件包中。它将以用户 synapse 身份启动 Synapse 服务器,并使用配置文件 /etc/synapse/homeserver.yaml
。
用户管理
您的新 Synapse 服务器上至少需要一个用户。您可以使用以下命令以您的普通非 root 用户身份创建一个用户
[synapse]$ register_new_matrix_user -c /etc/synapse/homeserver.yaml http://127.0.0.1:8008
或者使用 Matrix 客户端 之一,例如 element-desktop,或者 purple-matrix-gitAUR 插件,用于 libpurple。
Spider 网络爬虫
要启用网络爬虫以实现服务器生成的链接预览,必须安装额外的软件包 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 实例,用于其即时通信,其中包含各种各样的 Matrix 房间。有关详细信息,请参阅 https://wiki.gnome.org/GettingInTouch/Matrix。
故障排除
只读文件系统
默认情况下,Synapse 只能写入其服务文件中设置的工作目录 (/var/lib/synapse
)。如果 Synapse 写入到不同的路径(例如,您的媒体存储位于 /var/lib/matrix-synapse/media
),则可能会发生写入错误。
您可以通过为 synapse.service
创建 替换单元文件,并在 [Service]
部分添加 ReadWritePaths=your_paths
来允许访问其他目录。
高内存占用
通过安装 jemalloc,可以显著减少 Synapse 的内存占用[1]。要启用它,必须相应地设置环境变量 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
下的配置选项将不起作用。