聊天无隐私?三分钟使用docker搭建自己的端到端加密聊天室,美观的UI,极致的安全,【三分钟docker项目】

项目介绍

Matrix 和 Element 分别是什么?

Matrix:

  • Matrix 是一个开放的通信协议,用于实时通信,包括即时消息、音频和视频通话。
  • 它是去中心化的,这意味着任何人都可以设置自己的 Matrix 服务器,并与其他 Matrix 服务器通信。
  • Matrix 的目标是为所有不同的通信服务提供一个统一的标准,使得不同的服务可以互相通信。

Element:

  • Element 是基于 Matrix 协议的一个客户端应用。
  • 它允许用户通过 Matrix 协议进行即时消息、音频和视频通话。
  • Element 有多个版本,包括 Web、桌面和移动应用。
  • 它是 Matrix 生态系统中最流行的客户端之一。

简而言之,Matrix 是一个通信协议,而 Element 是基于这个协议的一个客户端应用。你可以将 Matrix 看作是一个电话网络(比如移动),而 Element 则是使用这个网络的手机(比如华为)。

进入服务器控制面板

然后在荧光标记处点击复制SSH连接密码,通过SSH工具连接服务器

通过SSH连接到服务器并检查docker和docker-compose是否正常安装

开始安装

1.创建安装matrix的安装目录

BASH 复制代码
sudo -i

mkdir -p /root/data/docker_data/matrix #根据自己的实际情况设定目录,没啥影响

cd /root/data/docker_data/matrix

2.运行容器

bash 复制代码
sudo docker run -it --rm \
-v /root/data/docker_data/matrix/data:/data \
-e SYNAPSE_SERVER_NAME=chat.abeginner.cn \
-e SYNAPSE_REPORT_STATS=yes \
matrixdotorg/synapse:latest generate

3.修改配置文件

bash 复制代码
cd /root/data/docker_data/matrix/data #注意与之前的目录一致

vim homeserver.yaml

更改以下内容

yml 复制代码
# Configuration file for Synapse.
#
# This is a YAML file: see [1] for a quick introduction. Note in particular
# that *indentation is important*: all the elements of a list or dictionary
# should have the same indentation.
#
# [1] https://docs.ansible.com/ansible/latest/reference_appendices/YAMLSyntax.html
#
# For more information on how to configure Synapse, including a complete accounting of
# each option, go to docs/usage/configuration/config_documentation.md or
# https://matrix-org.github.io/synapse/latest/usage/configuration/config_documentation.html
server_name: "chat.abeginner.cn"
pid_file: /data/homeserver.pid
listeners:
  - port: 8008
    tls: false
    type: http
    x_forwarded: true
    resources:
      - names: [client, federation]
        compress: false
database:
  name: sqlite3
  args:
    database: /data/homeserver.db
log_config: "/data/chat.abeginner.cn.log.config"
media_store_path: /data/media_store
registration_shared_secret: "wwaftxJ&3W3Xkx1y4gYoeoY0p6ywmkx96JZB7rCYg2+_bd~M,t"
report_stats: true
macaroon_secret_key: "+i6*ZU+ZgxnIjX98@F3F#Oxw*Un*40=58ESt=+HW=SVA@N6ITy"
form_secret: "xMGG5P~DD-7Brm19jaYR9v0d.wG:abNxN9ikdWcgNE7Z3F;NmB"
signing_key_path: "/data/chat.abeginner.cn.signing.key"
trusted_key_servers:
  - server_name: "matrix.org"

enable_registration: true
enable_registration_without_verification: true

# vim:ft=yaml

切换成英文输入法,修改好之后,按一下 esc,然后 :wq 保存退出。

BASH 复制代码
cd /root/data/docker_data/matrix
vim docker-compose.yml

英文输入法下,按 i

yaml 复制代码
version: "3.3"

services:
  synapse:
    image: "matrixdotorg/synapse:latest"
    container_name: "matrix_synapse"
    restart: unless-stopped
    ports:
      - 8008:8008
    volumes:
      - "./data:/data" # it will look at the current directory where you save the file and look for the data folder inside
    environment:
      VIRTUAL_HOST: "chat.abeginner.cn"
      VIRTUAL_PORT: 8008
      LETSENCRYPT_HOST: "chat.abeginner.cn"
      SYNAPSE_SERVER_NAME: "chat.abeginner.cn"
      SYNAPSE_REPORT_STATS: "yes"
  element-web:
    ports:
      - '8009:80'
    #volumes:
    #    - '/etc/element-web/config.json:/app/config.json'
    image: vectorim/element-web
    restart: unless-stopped

切换成英文输入法,修改好之后,按一下 esc,然后 :wq 保存退出。

然后运行

bash 复制代码
docker-compose up -d

然后设置以下反向代理一个8009,一个8008记得使用两个不同的二级域名而且要有ssl证书哦 完成后通过反向代理8009端口的域名访问界面

关注我,持续更新更多好玩,有趣的docker项目!

相关推荐
UIUV几秒前
微信小程序开发学习笔记:从架构到实战
前端·javascript·前端框架
程序猿_极客2 分钟前
JavaScript的Web APIs 入门到实战(day2):事件监听与交互实现,轻松实现网页交互效果(附练习巩固)
开发语言·前端·javascript·学习笔记·web apis 入门到实战
Mintopia20 分钟前
🚀 一文看懂 “Next.js 全栈 + 微服务 + GraphQL” 的整体样貌
前端·javascript·全栈
Mintopia23 分钟前
🧬 医疗Web场景下,AIGC的辅助诊断技术边界与伦理
前端·javascript·aigc
半桶水专家27 分钟前
父子组件通信详解
开发语言·前端·javascript
Watermelo61730 分钟前
从vw/h到clamp(),前端响应式设计的痛点与进化
前端·javascript·css·算法·css3·用户界面·用户体验
寻星探路34 分钟前
测试开发话题10---自动化测试常用函数(2)
java·前端·python
Moment35 分钟前
快到  2026  年了:为什么我们还在争论  CSS 和 Tailwind?
前端·javascript·css
梵得儿SHI1 小时前
Vue 核心语法详解:模板语法中的绑定表达式与过滤器(附 Vue3 替代方案)
前端·javascript·vue.js·插值语法·vue模板语法·绑定表达式·过滤器机制
江城开朗的豌豆1 小时前
TypeScript枚举:让你的代码更有"选择权"
前端·javascript