一、环境描述
首先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
server name 这里需要指定一个matrix服务器的域名,我使用了一个二级域名,你需要修改成你自己的域名。
还要把这个域名解析到你的服务器ip上,A记录。
执行完毕后就得到了初始的配置文件homeserver.yaml, 文件路径
/data/appdata/synapse/data/homeserver.yaml
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
四、使用nginx做反向代理
1.部署Nginx
本次略过。。。。