说明必须要debian12,因为此教程我用debian10的系统无法部署成功,试了几次都是一样的情况,才知道debian10和debian12变化挺大,不过未尝试debian11是否可行,时间充足的朋友可以参考此教程使用debian11试试。还是就是现在docker部署越来越麻烦(网络环境)希望有大神出一个详细的程序方式部署教程。
docker现在国内安装很慢设置无法访问,所以需要切换一下国内源。
su root vi /etc/apt/sources.list
网易云
deb http://mirrors.163.com/ubuntu/ focal main restricted universe multiverse deb http://mirrors.163.com/ubuntu/ focal-security main restricted universe multiverse deb http://mirrors.163.com/ubuntu/ focal-updates main restricted universe multiverse deb http://mirrors.163.com/ubuntu/ focal-proposed main restricted universe multiverse deb http://mirrors.163.com/ubuntu/ focal-backports main restricted universe multiverse deb-src http://mirrors.163.com/ubuntu/ focal main restricted universe multiverse deb-src http://mirrors.163.com/ubuntu/ focal-security main restricted universe multiverse deb-src http://mirrors.163.com/ubuntu/ focal-updates main restricted universe multiverse deb-src http://mirrors.163.com/ubuntu/ focal-proposed main restricted universe multiverse deb-src http://mirrors.163.com/ubuntu/ focal-backports main restricted universe multiverse
执行更新安装
sudo apt update sudo apt upgrade -y
更新系统并安装部分必要软件
sudo apt -y install curl vim wget gnupg dpkg apt-transport-https lsb-release ca-certificates
安装docker
sudo apt -y install docker.io
sudo systemctl start docker #启动docker sudo service docker start #启动服务 sudo systemctl enable docker #开启自启 systemctl restart docker#重启docker docker version # 查看版本 docker images#查看镜像 docker ps #查看是否有容器
docker换源 配置加速器文件(以下节点更加自己服务器访问情况保留或者更换新的节点,注意这里引号需要时英文的,如果重启服务器docker无法启动就是这里问题修改一下符号docker就起来了)
touch /etc/docker/daemon.json #创建文件 vim /etc/docker/daemon.json #编辑文件
{ ″registry-mirrors″: [ ″https://docker.1panel.live″,″https://docker.anyhub.us.kg″,″https://docker.amingg.com″,″https://hub.amingg.com″,″https://mirrors.aliyun.com″ ] }
修改完成后reload配置文件
sudo systemctl daemon-reload
重启docker服务(重启系统或者重启服务后再走下面步骤)
sudo systemctl restart docker
安装docker compose(如果慢可以直接挂梯子下载好版本重命名上传服务器docker compose执行语句第2条语句)
sudo curl -L ″https://github.com/docker/compose/releases/download/v2.29.2/docker-compose-linux-x86_64″ -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose
查看版本 docker-compose version
创建安装目录(根据情况自定义创建对应目录,然后在部署程序时对应目录也需要调整)
mkdir -p /root/matrix cd /root/matrix
以下代码路径就需要根据情况调整对应的路径
sudo docker run -it −−rm \ -v /root/matrix/data:/data \ -e SYNAPSE_SERVER_NAME=你的域名 \ -e SYNAPSE_REPORT_STATS=yes \ matrixdotorg/synapse:latest generate
执行上面命令后无报错会有新的文件需要编辑,一个是开启注册和无需验证注册。可根据情况调整(#语句是smtp配置,我加上去就无法启动docker有问题参考)
vim /home/matrix/data/homeserver.yaml #email: #编辑邮箱找回密码验证 #smtp_host: smtp.qq.com #smtp_port: 465 #smtp_user: 邮箱号 #smtp_pass: 邮箱密码 enable_registration: true enable_registration_without_verification: true
vim /data/matrix/docker-compose.yml
version: ″3.5″ 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: ″你的域名″ VIRTUAL_PORT: 8008 LETSENCRYPT_HOST: ″你的域名″ SYNAPSE_SERVER_NAME: ″你的域名″ SYNAPSE_REPORT_STATS: ″yes″ element-web: ports: − ′80:80′ image: vectorim/element-web restart: unless-stopped
#启动容器 docker-compose up -d #停止容器 docker-compose stop #删除容器 docker rm id #停止容器 docker stop id
启动容器后就可以访问你的matrix服务和element服务了。安卓客户端必须要https才能登录,http登录直接无法使用,ios客户端可以http和https登录。由于docker不会配置证书于是我尝试用代理方式实现https访问,然后安卓客户端也可以登录了。通过代理访问又出现一个问题,不知道是我代理服务器带宽问题还是什么问题,语音和视频电话直接无法接通情况,在局域网内网搭建是很流畅的。所以要用代理部署访问的建议考虑下带宽或者其他因素可能影响使用
经查发现是博主的反向代理问题导致无法音视频和带宽无关,调整优化测试后附上可用代理配置(目的为了安卓客户端可正常使用)
在宝塔里面新建一个站点,开启强制https访问,然后复制以下配置到站点配置文件即可。发现站点停止运行也不行反向代理运行
将以下
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ { expires 30d; error_log /dev/null; access_log /dev/null; } location ~ .*\.(js|css)?$ { expires 12h; error_log /dev/null; access_log /dev/null; }
替换为
#location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ #{ # expires 30d; # error_log /dev/null; # access_log /dev/null; #} #location ~ .*\.(js|css)?$ #{ # expires 12h; # error_log /dev/null; # access_log /dev/null; #} location / { proxy_pass http://你matrix服务器域名或ip地址/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header REMOTE-HOST $remote_addr; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; proxy_http_version 1.1; }
#卸载matrix cd /data/matrix/docker_data/matrix docker-compose down cd .. rm -rf /data/matrix/docker_data/matrix #卸载docker容器 sudo yum remove docker-ce docker-ce-cli containerd.io docker-compose-plugin #删除docker容器目录 sudo rm -rf /var/lib/docker sudo rm -rf /var/lib/containerd
本文参考来自
https://blog.laoda.de/archives/docker-compose-install-matrix-element