聊天无隐私?三分钟使用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项目!

相关推荐
七七powerful1 分钟前
mac电脑安装cmca根证书
java·前端·macos
神探小白牙3 分钟前
echarts环形图自定义
android·前端·echarts
ZC跨境爬虫8 分钟前
跟着 MDN 学 HTML day_28:(使用选择器 API 在 DOM 树中进行选择与遍历)
前端·ui·html·音视频·webrtc
东北甜妹8 分钟前
K8s Ingress
java·运维·前端
RickyWasYoung8 分钟前
【Matlab】合并多个子图的fig文件为一个大图
前端·matlab·信息可视化
爱滑雪的码农9 分钟前
React+three.js之项目搭建
前端·javascript·react.js
张风捷特烈11 分钟前
状态管理大乱斗#07 | Signals 源码评析 - 暗流涌动
android·前端·flutter
接着奏乐接着舞2 小时前
sse 两种调用方式
前端·javascript·vue.js
不会敲代码18 小时前
手写 Mini React:从 JSX 到虚拟 DOM 再到 render,搞懂 React 底层原理
前端·javascript·react.js
kyriewen9 小时前
你的代码仓库变成“毛线团”了?Monorepo 用 Turborepo 拆成“乐高积木”
前端·javascript·面试