> 文章列表 > matrix部署

matrix部署

matrix部署

一、环境描述

首先matrix是一个去中心化的聊天服务,matrix实现了端对端的加密,这意味着不仅其他人无法查看你的聊天内容,哪怕你更换了一个终端,你也需要私钥才能够查看你的聊天记录。
这是终极的隐私保护方案,因为一旦你丢掉了这个密钥,这些内容就相当于被销毁了。
如果你能够访问到matrix的服务器那么就可以直接使用matrix的主聊天服务
自建matrix的意义何在呢
如果你在中国大陆,你是无法访问到matrix的主服务的,需要梯子的辅助
这时候自建一个matrix服务,不仅实现了一个独立的聊天服务,
matrix的服务之间也是联系在一起的,通过自建服务是可以与其他服务器的用户进行通信的,这时候自建的的matrix相当于一个moon服务器。
本次实验使用的是:
1.服务器系统是centos7
2.使用的服务是docker,synapse
3.反向代理使用nginx
4.证书服务使用letsencrypt

二、安装docker

1.设置docker仓库

第一次安装的时候需要设置docker仓库,后面就可以利用该仓库进行安装和升级docker。
需要先安装 yum-utils 包,它可以提供yum-config-manager工具和配置稳定的仓库。

yum install -y yum-utils
yum-config-manager \\--add-repo \\https://download.docker.com/linux/centos/docker-ce.repo

2.安装docker引擎

yum install docker-ce docker-ce-cli containerd.io  -y

3.启动Docker

systemctl enable docker
systemctl start docker
docker   --version

三、创建synapse服务

1.创建一个映射路径

mkdir -p /data/appdata

2.Docker拉取matrix镜像,并且运行容器

docker run -it --rm \\-v /data/appdata/synapse/data:/data \\-e SYNAPSE_SERVER_NAME=www.baidu.com\\-e SYNAPSE_REPORT_STATS=yes \\matrixdotorg/synapse:latest generate

matrix部署
server name 这里需要指定一个matrix服务器的域名,我使用了一个二级域名,你需要修改成你自己的域名。
还要把这个域名解析到你的服务器ip上,A记录。

执行完毕后就得到了初始的配置文件homeserver.yaml, 文件路径
/data/appdata/synapse/data/homeserver.yaml
matrix部署

3.建立一个 docker network

为了让桥接用的容器和 synapse 容器能够互相通讯

docker network create matrix

4.启动服务器并连接到 network

docker run -d --name synapse \\-v /data/appdata/synapse/data:/data \\-p 8088:8008 \\--restart unless-stopped \\--network matrix \\matrixdotorg/synapse:latest

5.开启防火墙端口

8088端口就是我们需要访问的端口

firewall-cmd --zone=public --add-port=8088/tcp --permanent
firewall-cmd --reload

6.访问测试

理论上来说现在就可以直接通过这个域名(加端口)访问到了。
http://域名:8088
matrix部署

四、使用nginx做反向代理

matrix部署

server {listen       80;listen       443 ssl;server_name  www.baidu.com;charset      utf-8;error_page   404              /404.html;error_page   500 502 503 504  /500.html;##开启强跳
#       if ($server_port = 80 ) {#       return 301 https://$host$request_uri;#  }add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";#   ssl_certificate keys/baidu/server.crt;#  ssl_certificate_key keys/baidu/server.key;ssl_session_cache shared:SSL:1m;ssl_session_timeout  10m;ssl_ciphers HIGH:!aNULL:!MD5;ssl_prefer_server_ciphers on;location / {proxy_pass http://127.0.0.1:8088;}
}

现在就可以使用域名访问了
http://域名

但是如果你想使用聊天服务还需要客户端,下载matrix客户端riot

手动生成账号
进入容器生成zhanghao

docker ps  
docker exec -it synapse /bin/bash  
register_new_matrix_user -c /data/homeserver.yaml http://localhost:8008