Matrix-Synapse安装使用与注意事项

本篇的环境为Ubuntu20.04,使用PostgreSQL14,Python3.8运行,且使用apt方式安装,其他情况请不要直接套用。

Matrix-Synapse是目前最成熟的Matrix家庭服务器,也是应用最广的一个。全世界有数以千万计的人享受着Matrix-Synapse带来的便捷与安全。考虑到https://matrix.org 难以在国内访问,本篇文章同时也会简单说明一下安装步骤,详细的步骤还请访问GitHub上面Matrix官方的文档

安装

Ubuntu仓库中的很多软件并不是最新版本,Synapse也不例外。所以首先,你需要先将下载源调换为官方下载源(本文特指发行版,如需预发行版请自行设置)。
(你的服务器需要可以访问外网)

sudo apt install -y lsb-release wget apt-transport-https
sudo wget -O /usr/share/keyrings/matrix-org-archive-keyring.gpg https://packages.matrix.org/debian/matrix-org-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/matrix-org-archive-keyring.gpg] https://packages.matrix.org/debian/ $(lsb_release -cs) main" |
    sudo tee /etc/apt/sources.list.d/matrix-org.list
sudo apt update
sudo apt install matrix-synapse-py3

安装完成?恭喜你,你已经安装好了Synapse!
不过这只是开始,安装完毕后是不能直接用的,你需要编辑位于/etc/matrix-synapse的文件(如果在别处编辑文件并且使用别处的文件且用systemd进行管理,请自行修改matrix-synapse.service中配置文件的路径)
现在让我们安装PostgreSQL,实际上Ubuntu仓库中的12版本是可以使用的,但是为了方便未来更新,我们还是直接一步到位使用新版本PostgreSQL作为数据库程序。请不要有长期使用SQLite3的想法,你不会获得任何好处。

sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt-get update
sudo apt-get -y install postgresql

然后安装Redis

curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg

echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list

sudo apt-get update
sudo apt-get install redis

请注意,如果Redis通过systemd启动失败,请检查日志对应文件及其所有者。
(如果你想,你可以再设置Redis的访问密码,步骤简单,在这里不多赘述)

数据库

如使用宝塔,请注意不要使用宝塔内的PostgreSQL生成数据库,这不合规。
首先我们进入postgres账户:

su - postgres
#or
sudo -u postgres bash

然后创建一个用户以及其下的一个数据库:

createuser --pwprompt username

createdb --encoding=UTF8 --locale=C --template=template0 --owner=username dbname

你可以为该用户设置一个强密码,准备完毕后就不再需要对数据库执行操作了。
数据库相关的配置如下(参考的整体配置在最后面)

database:
  name: psycopg2
  args:
    user: <user>
    password: <pass>
    database: <db>
    host: <host>
    cp_min: 5
    cp_max: 10

相关内容请自行替换。

基础配置

基础配置部分大多数无需改动,部分诸如"server_name"等请自行填写。请注意仔细填写,诸如server_name等项一经启动初始化便无法修改,唯一方法便是清空数据库重新开始。

如果你想让它变成同一域名既可以当做Matrix服务器又可以同时做其他事,请直接填写目标域名,例如,想要example.com同时成为Matrix服务器与运行别的服务,请直接填写example.com。

接下来重点讲讲易踩坑部分

使日志占用降低

如果你打开log.yaml阅读过,你可以惊喜地发现Matrix贴心地默认将日志等级设置为INFO,而这意味着大量操作将被记录,空间占用将明显上升。建议调整为WARNING或ERROR,既可以定位问题,又不至于过度占用资源。

如何运行Synapse?

你可以在homeserver.yaml同目录下运行synctl start/stop/restart来操作Synapse且在本次开机(注意不是会话)期间有效,你也可以使用systemd实现开机自启,文件如下:

[Unit]
Description=Synapse master

# This service should be restarted when the synapse target is restarted.
PartOf=matrix-synapse.target
ReloadPropagatedFrom=matrix-synapse.target

[Service]
Type=notify
NotifyAccess=main
User=matrix-synapse
WorkingDirectory=/var/lib/matrix-synapse
EnvironmentFile=-/etc/default/matrix-synapse
ExecStartPre=/opt/venvs/matrix-synapse/bin/python -m synapse.app.homeserver --config-path=/etc/matrix-synapse/homeserver.yaml --config-path=/etc/matrix-synapse/conf.d/ --generate-keys
ExecStart=/opt/venvs/matrix-synapse/bin/python -m synapse.app.homeserver --config-path=/etc/matrix-synapse/homeserver.yaml --config-path=/etc/matrix-synapse/conf.d/
ExecReload=/bin/kill -HUP $MAINPID
Restart=always
RestartSec=3
SyslogIdentifier=matrix-synapse

[Install]
WantedBy=matrix-synapse.target
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
### 回答1: 我可以回答这个问题。要将 ClickHouse 的 SQL 语句转换为 Synapse 语法,您需要了解 Synapse 的语法规则,并根据需要修改 ClickHouse 的 SQL 语句。具体的转换方法可以参考 Synapse 的官方文档或者相关的教程。 ### 回答2: 要将ClickHouse的SQL语句转换为Synapse语法,您需要注意以下几个方面: 1. 数据类型:ClickHouse和Synapse支持的数据类型可能有所不同。请确保将ClickHouse的数据类型转换为Synapse支持的等效类型。例如,将ClickHouse的UInt32转换为Synapse的INT类型。 2. 函数和操作符:ClickHouse和Synapse的函数和操作符可能略有不同。您需要查阅Synapse文档,了解其支持的函数和操作符,并将ClickHouse代码中的函数和操作符转换为Synapse的等效方式。 3. 字符串处理:ClickHouse和Synapse对于字符串的处理方式也可能有所不同。请确保将ClickHouse代码中的字符串处理函数和操作符转换为Synapse的等效方式。 4. 聚合函数:如果您的ClickHouse代码使用了聚合函数,例如SUM或AVG,您需要确保将它们转换为Synapse支持的等效函数,以保证结果的准确性。 5. 分页和排序:ClickHouse和Synapse在分页和排序语法方面也可能有所不同。请确保将ClickHouse代码中的分页和排序语法转换为Synapse的等效方式。 总之,将ClickHouse的SQL语句转换为Synapse语法需要您对两者的语法和功能有较为深入的了解。建议您参考Synapse的官方文档,以确保语句转换正确且结果正确无误。 ### 回答3: ClickHouse 是一个高性能、可扩展的分布式列式数据库管理系统,而Synapse 是微软的云数据仓库平台。它们之间的 SQL 语法存在一些差异,以下是将 ClickHouse 的 SQL 语句转换为 Synapse 语法的一些建议。 1. 数据类型转换 - ClickHouse 使用较为特殊的数据类型,需要将其转换为合适的 Synapse 数据类型。例如,ClickHouse 的 UInt64 可以转换为 Synapse 的 BIGINT。 2. 语法差异 - 一些 ClickHouse 特定的语法在 Synapse 中不支持或有不同的实现方式。例如,ClickHouse 使用 `FORMAT` 关键字来指定数据的输出格式,而在 Synapse 中可以使用 `CAST` 函数来实现相似的功能。 3. 函数差异 - Synapse 和 ClickHouse 支持的函数可能有所不同。在将 SQL 语句转换为 Synapse 语法时,需要检查并替换 ClickHouse 特定的函数为 Synapse 支持的等效函数。 4. 日期和时间 - Synapse 使用较为标准的日期和时间格式,而 ClickHouse 对此有自己的实现。在转换 SQL 语句时,需要将日期和时间的处理方式进行调整,以适应 Synapse 的格式要求。 5. 分布式查询 - ClickHouse 和 Synapse 都支持分布式查询,但具体实现方式略有差异。在将 ClickHouse 的 SQL 语句转换为 Synapse 语法时,需要注意分布式查询相关的语法和规则的差异。 总之,将 ClickHouse 的 SQL 语句转换为 Synapse 语法需要根据具体情况进行一些适应性的调整和转换。鉴于 ClickHouse 和 Synapse 的差异较大,可能需要根据实际需求和资源进行具体分析和调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

七夜草

您的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值