百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

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

cac55 2025-04-27 12:40 21 浏览 0 评论

支持语音和视频通话,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,如果今天的内容对你有帮助请记得收藏,顺便点点关注,咱们下期再见!谢谢大家~

相关推荐

Linux :远程访问的 16 个最佳工具(一)

通过远程桌面协议(RDP)可以访问远程Linux桌面计算机,这是Microsoft开发的专有协议。它为用户提供了一个图形界面,可以通过网络连接连接到另一台/远程计算机。FreeRDP是...

Guacamole安装部署_guacamole简单搭建

Guacamole安装部署Guacamole简介Guacamole是提供连接远程桌面的解决方案的开源项目(也可以说是一个远程桌面网关),通过浏览器就能远程操作服务器,适用于Chrome、Firefox...

1-FreeRTOS入门指南_freertos+lwip

本专栏是根据官方提供的文档进行FreeRTOS的各个功能函数的说明,以及函数的使用本专栏不涉及动手操作,只是对原理进行说明,FreeRTOS基础知识篇更新完成会对如何在开发板上进行上手实战操作。这里不...

Windows暂停远程桌面,这些工具可替代

Windows暂停远程桌面,这些工具可替代近日,Windows官方宣布将于2025年5月27日起,在Windows10和Windows11应用商店中下架“Microsoft远程桌面”应用。这一消...

现在做 Web 全景合适吗?_前端全景

作者:前端藏经阁转发链接:https://www.yuque.com/xwifrr/uxqg5v/cgclx0前言Web全景在以前带宽有限的条件下常常用来作为街景和360°全景图片可查看。它可以...

网页直连,MSTSC远程控制Windows新姿势!

不用安装软件,打开浏览器就能远程办公?今天要聊的是一种颠覆传统的远程控制玩法,直接用网页连接Windows电脑,无需下载客户端,手机、平板、Mac甚至Linux都能轻松操作。这可不是吹牛,结合MSTS...

QQ出现大面积盗号,原因已查明,请抓紧改密码

你没有看错,QQ又上了微博热搜,这次比较严重了,QQ出现大面积盗号,多个QQ群出现yellow信息,其次导致多位成员被踢出,并且还被封号处理,到底怎么回事?请继续往下看。在6月26日晚上10点左...

我在淘宝花10块钱,买到了能玩“宝可梦”的Q群机器人

十一月雨|文我是个没事喜欢逛淘宝的人,虽然是个不怎么好的习惯,但总是能够发现一些奇奇怪怪的东西,这次我发现的是一种Q群机器人。Q群机器人,大多是基于腾讯SmartQQ协议实现的一种能自动回复、自定...

Metasploit最实用的攻击模块"Meterpreter"

Meterpreter命令详解Meterpreter是Metasploit渗透测试平台框架中功能最强大的攻击载荷模块,在最新的Metasploitv4.5.0版本中,攻击载荷模块已经达到了25...

手机QQ再更新,上线了一个想让人“无法回避”的新功能

近日,手机QQ更新了V8.2.6.700版本,苹果iOS版和安卓版手机QQ上线了一个新功能:可以实时显示对方的手机电量以及充电状态。开通电量显示也很简单,长按主页左上方的头像,在在线状态中选择我的电量...

「网络安全」常见攻击篇(20)——点击劫持

什么是点击劫持?点击劫持(Clickjacking)技术又称为界面伪装攻击(UIredressattack),是一种视觉上的欺骗手段。通常有两种方式:攻击者使用一个透明的iframe,覆盖...

曾利用驱动人生升级通道传播的木马下载器攻击方法再次升级

一、概述御见威胁情报中心1月25日再次监测到曾利用驱动人生升级通道传播的木马下载器攻击方法再升级。本次升级主要变化在于攻击模块,木马在之前的版本上,新增计划任务“DnsScan”,在其中将永恒之蓝攻击...

QQ飞车手游:点券首个功能性宠物上架,实战稳定触发还不快入手?

随着版本的逐渐更新,点券宠物在道具模式发挥逐渐越来越小,曾经探讨点券宠物在道具是不是真的没有用?直到出现了波斯猫改变了,我对点券宠物在道具模式的看法,如今又一个强势点券宠物来袭,而且特性触发简单,还是...

工单系统设计实战(上):核心配置与效能提升

流程的标准化并非终点,而是研发效能持续革命的基石。当工单系统真正成为研发团队的“神经中枢”,每一次需求的精准流转、每一行代码的受控提交、每一次版本的可靠发布,都将汇聚成驱动产品持续进化的强大动力...

6个编辑PDF文档内容的工具(软件+网站)

在日常办公、学习和生活中,PDF文件因其格式稳定、跨平台兼容性强等特点,被广泛应用。但有时我们拿到PDF文件后,却发现需要修改其中的内容,总感觉有点难搞。其实PDF文档编辑修改也很简单,这里分享6个软...

取消回复欢迎 发表评论: