前言
互联网时代无隐私,但毕竟有时候讲究一下,希望多少能够起到一些作用,而且有时候希望跨平台发送一些消息什么的也比较方便,正好最近把拖延症咕咕咕的很久了的想法实践了一下。使用的是官方镜像,简单跑起来就好了,没有用docker compose安装。
使用的是Matrix
,需要搭建中心服务synapse
;可以语音通话、视频通话、发文件、发图片等等,相当不错。
- 项目地址:https://github.com/matrix-org/synapse
- docker地址:https://hub.docker.com/r/matrixdotorg/synapse/
一. 开始安装
1.1 安装docker
新装系统可能需要安装一下curl
,已有跳过
#debian/ubuntu
apt-get update && apt-get install -y curl
#centos/redhat
yum update && yum install -y curl
直接使用docker官方一键脚本,已有跳过
#通用
curl -fsSL https://get.docker.com | bash -s docker
#大陆地区
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
1.2 生成synapse配置文件
docker run -it --rm \
-v /www/data/synapse-data:/data \
-e SYNAPSE_SERVER_NAME=my.matrix.host \
-e SYNAPSE_REPORT_STATS=no \
matrixdotorg/synapse:latest generate
说明
- -v /www/data/synapse-data:/data \ #前面为映射的具体路径,按需修改
- -e SYNAPSE_SERVER_NAME=my.matrix.host \ #域名
- -e SYNAPSE_REPORT_STATS=no \ #是否发送匿名统计数据
在映射目录下生成的配置文件homeserver.yaml
,可以按需修改,比如修改是否允许注册/修改默认8008端口等,这里不过多介绍。
1.3 安装运行
docker run -d --name synapse \
-v /www/data/synapse-data:/data \
-p 12233:8008 \
matrixdotorg/synapse:latest
说明:
- -v /www/data/synapse-data:/data \ 前面是之前配置文件所在目录
- -p 12233:8008 \ 前面是映射端口,直接访问就是IP:12233,推荐域名反向代理
1.4 创建用户
创建一个管理员账户,好通过网页面板管理
#创建管理员用户
#注意按需修改汉字,上面端口无论映射什么都还是按8008来
docker exec -it synapse register_new_matrix_user http://localhost:8008 -c /data/homeserver.yaml -a -u 用户名 -p 密码
还可以通过命令行创建普通用户,也可以跳过,等后面教程在网页管理界面操作。
#创建普通用户
#汉字按需修改
docker exec -it synapse register_new_matrix_user http://localhost:8008 -c /data/homeserver.yaml --no-admin -u 用户名 -p 密码
1.5 安装管理面板
这里还是使用现有镜像,
- docker地址:https://hub.docker.com/r/awesometechnologies/synapse-admin
docker run -d -p 12234:80 awesometechnologies/synapse-admin
说明:
- -p 12234:80 前面是访问管理页面的端口,直接访问就是IP:12234
1.6 小结与客户端安装
到这一步其实就可以直接安装客户端访问了,不过通过域名反代一下确实会好记一些。
先说一下客户端的安装,Matrix
支持的客户端很多,我也没全部试过,暂时使用的是Element
;不过需要注意iOS端的Element messenger
国区是没有的。
所有客户端列表:
- https://matrix.org/clients/
Element
Windows端(其他平台也差不多):
二. 反向代理
这里使用宝塔面板,毕竟好用,有相关知识储备请跳过此步骤。
如需要,宝塔面板的安装请翻之前的文章,或者自行搜索。
2.1 新建站点
如图,按顺序操作,域名填上面1.2步骤,docker里的域名。
2.2 一级目录反向代理
这里使用一级目录反向代理,新建站点反向代理。按图操作,目标url即是之前docker映射的本地IP端口。然后客户端的服务器填反向代理的域名即可。
2.3 二级目录反向代理
同理也可以编辑nginx
配置使用二级目录反向代理,
这里使用现有的站点进行操作,如图所示,比如现有站点是a.b.com
,
那么二级目录反向代理之后就是访问”现有站点/所填写的Path”
即a.b.com/path
,如图path
是admin
,
则即是a.b.com/admin
。
如图,将下列配置放到nginx
的配置里头,按需修改,保存生效。
#反代synapse_admin
location ^~/admin { # 这里的 Path 可以是任意
proxy_http_version 1.1;
proxy_set_header Host $http_host;
proxy_buffering off;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://0.0.0.0:12234; # 这里的 Path 为所设定的端口
}
同理,反向代理其他服务也是一样的,按需修改。
结束
好了,教学就到这里了。
讲真资源占用很小哦,virmach洛杉矶的特价机,视频通话也挺流畅的,就是实时没有大厂IM软件清晰,不知道是网络原因还是本身如此,或许网络更好一些的服务器的话可能会更好。