本文发布于157天前,最后更新于139天前,其中的信息可能有所发展或是发生改变。
1. 前言
打造自己的私有IM,私有聊天室~
官网:Matrix.org
官方安装文档:Installation – Synapse (matrix-org.github.io)
官方docker:matrixdotorg/synapse – Docker Image | Docker Hub
演示:
2. 准备
在开始部署之前,你需要安装 docker和docker-compose。具体安装见:【docker】在服务器上安装 docker/docker-compose
3. 部署
3.1 生成配置文件
创建文件夹:
代码语言:javascript复制mkdir -p /root/data/docker_data/matrix/data
cd /root/data/docker_data/matrix
你需要将域名解析到服务器,然后修改下面代码中SYNAPSE_SERVER_NAME
的值为你的域名,例如matrix.yemengstar.com
:
docker run -it --rm
-v /root/data/docker_data/matrix/data:/data
-e SYNAPSE_SERVER_NAME=matrix.yemengstar.com
-e SYNAPSE_REPORT_STATS=yes
matrixdotorg/synapse:latest generate
运行以后,homeserver.yaml
会自动生成在/var/lib/docker/volumes/synapse-data/_data
中,你可以查看这个配置文件,必要的时候可以进行修改。
查看homeserver.yaml
:
cd data
vim homeserver.yaml
默认生成的配置如下:
代码语言:javascript复制# 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://element-hq.github.io/synapse/latest/usage/configuration/config_documentation.html
server_name: "matrix.yemengstar.com"
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/matrix.yemengstar.com.log.config"
media_store_path: /data/media_store
registration_shared_secret: "***"
report_stats: true
macaroon_secret_key: "***"
form_secret: "***"
signing_key_path: "/data/matrix.yemengstar.com.signing.key"
trusted_key_servers:
- server_name: "matrix.org"
# vim:ft=yaml
默认的配置文件没有开启注册功能,所以需要我们手动开启一下。
英文输入法下按i进入编辑模式后,在这个配置文件的最后加入:
代码语言:javascript复制enable_registration: true
enable_registration_without_verification: true
按esc
后,输入:wq
保存退出。当然你可以选择直接把这个配置文件删了然后编辑好全部贴入。
你也可以新添加一些环境变量,夜梦因为用不到所以就不写了(懒),需要的小伙伴可以查看官方给出的额外的环境变量的配置:matrixdotorg/synapse – Docker Image | Docker Hub
3.2 运行synapse[1]
在/root/data/docker_data/matrix
文件夹中创建运行配置文件:
vim docker-compose.yml
贴入:
代码语言:javascript复制version: "3.3"
services:
synapse:
image: "matrixdotorg/synapse:latest"
container_name: "matrix_synapse"
restart: unless-stopped
ports:
- 8008:8008
volumes:
- "./data:/data"
environment:
VIRTUAL_HOST: "matrix.yemengstar.com"
VIRTUAL_PORT: 8008
LETSENCRYPT_HOST: "matrix.yemengstar.com"
SYNAPSE_SERVER_NAME: "matrix.yemengstar.com"
SYNAPSE_REPORT_STATS: "yes"
设置默认权限:
代码语言:javascript复制chown -R 991:991 /root/data/docker_data/matrix/data
运行:
代码语言:javascript复制docker-compose up -d
4. 反向代理
你需要完成反向代理并开启SSL,具体为你的域名
->服务器IP:8008
,反代可以参考下面两篇文章:
【docker】反向代理神器 ——Nginx Proxy Manager 的安装
【docker】Nginx Proxy Manager 的使用
具体如下图所示:
访问域名可以看到下面的界面:
5. 配合element
夜梦推荐直接下载官方的app用,省的折腾了~
下载地址:Download Element
官方客户端安装好打开,长下面这样:
我们点编辑,添加自己的服务器(域名):
创建新用户:
注册需要强密码。成功登录~
强烈建议在注册完用户以后,关闭注册功能:
代码语言:javascript复制enable_registration: false
enable_registration_without_verification: false
然后重启一下docker容器:
代码语言:javascript复制docker restart <CONTAINER ID>
聊天~