docker 简单搭建加密通讯软件服务端:synapse,超详细入门级教学

前言

互联网时代无隐私,但毕竟有时候讲究一下,希望多少能够起到一些作用,而且有时候希望跨平台发送一些消息什么的也比较方便,正好最近把拖延症咕咕咕的很久了的想法实践了一下。使用的是官方镜像,简单跑起来就好了,没有用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,如图pathadmin

则即是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软件清晰,不知道是网络原因还是本身如此,或许网络更好一些的服务器的话可能会更好。

点赞

    发表评论

    电子邮件地址不会被公开。必填项已用 * 标注