安装操作指引参考自官方文档
https://element-hq.github.io/synapse/latest/setup/installation.html
-
服务器环境
ubuntu-22.04.5 lts版本 -
官方指令
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
- 以上命令按顺序执行,第二条命令如果提示connect错误,可能你需要魔法网络
- 该方案可以帮你解决在linux内部进行网络代理的配置
https://zhuanlan.zhihu.com/p/661644999
- 上面第二条命令,你也可以自己先将后面的网址粘在浏览器上下载后放置在服务器的/usr/share/keyrings/matrix-org-archive-keyring.gpg位置
- 然后最后两条命令如果报错,也基本和网络有关,记得检查网络代理的配置是否正确
- 最后一条命令执行时屏幕会发生变化出现问题选择,一个是报告可以选false,还有一个server name的填写,自定义填写即可,其他正常选择继续就行。
- 当这些命令都执行成功后,执行ps -ef|grep synapse后就能看到如下图所示
然后切换到目录/etc/matrix-synapse/conf.d下;如果没有当前目录可以搜索下server_name,有matrix的路径就是
- 安装成功后,会有上述配置文件,在server_name.yaml文件中,配置如下:
server_name字段的值默认会显示你上面第4条命令执行后出现的输入框输入的值
regist这个字段是你后面需要创建用户时的给用户生成密码时需要用到的,可以自定义
listeners这个是提供给客户端element这个app或者浏览器等其他客户端能够访问的配置,tls和type看情况配置
这里只展示的是配置局域网内部的聊天,所以没用到https和nginx;如果要搭配域名https还需要配置对应的nginx,这个参考最开始的官方文档即可。
-
此时,你可以打开手机app或者电脑客户端就能直接配置
如图配置你synapse服务安装的局域网ip即可生效,此时还无法登陆,因为没有用户。 -
在服务器内搜索register_new_matrix_user,我的是在/opt/venvs/matrix-synapse/bin目录下
该文件就是你创建用户的文件,局域网内你需要在服务器执行这个文件来创建对应的用户,执行下条语句可以创建用户
sudo register_new_matrix_user -c /etc/matrix-synapse/conf.d/server_name.yaml
执行后会让你逐行输入用户名/密码/是否管理员,创建成功后你就可以在客户端登陆聊天了
New user localpart: alice
Password: ********
Confirm password: ********
Make admin [no]: yes
Success!
- 也可以放开进行自主注册,在配置文件里添加,生产环境开放注册需配合验证码、白名单等(否则会被垃圾注册攻击),测试环境可临时开启。
enable_registration: true # 开启开放注册
- 配置文件修改后,重启server
systemctl stop matrix-synapse
systemctl start matrix-synapse
如果启动报错,多半是配置文件配置项有误,注意检查就好,上述图中的配置可以完美启动。
以上能完美支持局域网启动使用,如果要优化可以按照官方文档配置数据库和nginx等信息。