51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

支持语音和视频通话,Docker部署端到端加密的在线聊天室『Matrix&Element』

支持语音和视频通话,Docker部署端到端加密的在线聊天室『Matrix&Element』

哈喽小伙伴们好,我是Stark-C~

在这个所谓的大数据时代,我们在互联网的一言一行可以说都无时无刻受到监控,如何最大限度的保护个人隐私,可以说是当前网络时代我们每个人的必备技能之一。

隐私第一步,先教大家怎么创建一个自己私有的在线聊天室吧~

简介

关于Matrix:

  • Matrix 是一个开放的通信协议,用于实时通信,包括即时消息、音频和视频通话。

  • 它是去中心化的,这意味着任何人都可以设置自己的 Matrix 服务器,并与其他 Matrix 服务器通信。

  • Matrix 的目标是为所有不同的通信服务提供一个统一的标准,使得不同的服务可以互相通信。

关于Element:

  • Element 是基于 Matrix 协议的一个客户端应用。

  • 它允许用户通过 Matrix 协议进行即时消息、音频和视频通话。

  • Element 有多个版本,包括 Web、桌面和移动应用。

  • 它是 Matrix 生态系统中最流行的客户端之一。

简单理解,Matrix 是一个通信协议,而 Element 是基于这个协议的一个客户端应用,我们的最终目标就是使用 Element 通过端到端加密的 Matrix 协议,来搭建一个去中心化的加密个人与团队通讯服务。

与常见的QQ微信,Matrix的特点就是开源,可私有化部署,从而保证通信的安全和隐私。与Rocket.chat、MatterMost相比,Matrix的特点还要再加上去中心化,每个运行Matrix的服务器都是一个节点,用户可以选择在任意节点注册、连接,同一个节点内的用户可以任意通信。同时,节点与节点之间也可以通过联锁(Federation)机制进行通信,实现不同节点的用户之间进行通信,这其实就是文中标题说的"端到端加密"。

部署

🔺部署之前有一个必备条件,那就是你必须有一个自己的域名(可以不用备案),并且已经做好了动态域名解析(DDNS)。一般玩NAS的这个应该都已经设置好了对吧?

如果你还没有做到这个条件,强烈建议你先部署Lucky:

https://post.smzdm.com/p/a3x63wrr/

🔺然后打开NAS的文件管理器,在 docker 目录中(威联通默认为Container文件夹),创建一个新文件夹【matrix】,然后在 matrix文件夹中再分别新建一个子文件夹【data】 用于数据文件的持久化存储。

🔺接着使用SSH终端工具连接到NAS之后先启用root模式(" sudo -i "),之后输入以下Docker run多行命令(请注意,张大妈编辑器会删掉每行命令后面的反斜杠)并回车即可:

sudo docker run -it --rm \

-v /share/Container/matrix/data:/data \

-e SYNAPSE_SERVER_NAME=你的域名 \

-e SYNAPSE_REPORT_STATS=yes \

matrixdotorg/synapse:latest generate

命令唯一需要修改的就是"-v /share/Container/matrix/data:/data"中的路径映射是matrix文件夹内的data子文件夹。

🔺等到命令部署完成之后,回到NAS的文件管理器,在之前创建的matrix文件夹内的data子文件夹中,可以看到一个"homeserver.yaml"文件,这个文件其实就是matrix默认生成的配置文件。将这个配置文件下载到电脑本地。

🔺matrix默认的配置文件并没有开启注册功能,需要我们手动开启。我们通过代码编辑器(比如Visual Studio Code、Sublime Text 或 Atom)打开配置文件,然后在配置文件最后面加入以下代码并保存:

enable_registration: true
enable_registration_without_verification: true

完成后将修改后的"homeserver.yaml"配置文件替换掉NAS文件夹中原有的配置文件即可。

🔺最后通过docker-compose 一键部署。这里以威联通NAS为例,打开"应用程序"输入以下docker-compose 代码:

version: "3.3"
services:
 synapse:
  image: "matrixdotorg/synapse:latest"
  container_name: "matrix_synapse"
  restart: unless-stopped
  ports:
   - 8008:8008    # 本地端口别冲突
  volumes:
   - "/share/Container/matrix/data:/data"    # 映射matrix文件夹下的data子文件夹
  environment:
   VIRTUAL_HOST: "x.com"    # 你的域名
   VIRTUAL_PORT: 8008
   LETSENCRYPT_HOST: "x.com"    # 你的域名
   SYNAPSE_SERVER_NAME: "x.com"    # 你的域名
   SYNAPSE_REPORT_STATS: "yes"
 element-web:
  ports:
   - '8098:80'    # 本地端口别冲突
  image: vectorim/element-web
  restart: unless-stopped

以上代码需要根据注释自行修改。

如果你习惯SSH部署,可以将修改好的docker-compose.yml文件放到NAS任意文件夹内,然后运行以下命令:

#进入文件夹
cd 文件夹实际路径
#启动容器
docker-compose up -d

🔺如果不出问题,可以看到应用程序中包含了上图两个Docker容器正在运行。

体验

🔺首先咱们先确认下Matrix服务有没有问题,浏览器输入【 NAS的局域网IP:端口号(默认8008)】,如果出现上图所示提示就说明Matrix服务没问题,且在运行中。

🔺然后就可以登录Element聊天室了。不过想要外网使用,首先咱们需要将Element网页端(也就是我们部署时候的element-web容器)对应的端口做好反向代理,这里依然给大家安利的是Lucky,绝对是NAS必装神器之一。

🔺接着直接使用我们的反向代理链接打开。首次打开会有一个浏览器不兼容的提醒,我们不用理会,直接点图中所示位置然后刷新一下页面即可。

🔺Element默认是英文界面,不过它有原生简体中文支持。更改好语言之后我们就可以"创建账户"了。

🔺创建账户很简单,仅需用户名、密码以及邮箱即可。需要说明的是邮箱需要时自己的真实邮箱,因为稍后会需要验证。

🔺这里点"接受"条款。

🔺然后就提示让我们去邮箱那边验证了,验证其实就是点一下它发过来的一个链接就可以了。

🔺然后就会正式来到聊天页面。

🔺界面还是很简单清爽的,上手也很容易,每步都有详细的向导说明。

🔺可以通过发送邀请链接来邀请他人加入聊天室。

🔺我这里随意加了一个小伙伴,可以看到它显示的就是"发送加密消息",并且还支持贴纸、语音消息、投票,以及位置信息。

🔺聊天界面右上角还支持发起语音与视频。

🔺同时,Element还有手机端APP,IOS以及安卓都支持。

🔺它的设置可选项也比较丰富。

最后

该项目后期可设置的项目很多,我这里也不再一一展示了,只要我们部署起来,怎么折腾就在于你自己了。

好了,以上就是今天给大家分享的内容,我是爱分享的Stark-C,如果今天的内容对你有帮助请记得收藏,顺便点点关注,咱们下期再见!谢谢大家~

赞(4)
未经允许不得转载:工具盒子 » 支持语音和视频通话,Docker部署端到端加密的在线聊天室『Matrix&Element』