生成 Synapse 配置文件
docker run -it --rm -v /mnt/user/appdata/matrix/server/data/:/data/ -e SYNAPSE_SERVER_NAME=域名 -e SYNAPSE_REPORT_ST
ATS=no matrixdotorg/synapse:latest generate
安装运行
docker run -d --name matrix -v /mnt/user/appdata/matrix/server/data/:/data/ -p 38008:8008 -p 38009:8009 -p 38448:8448 matrixdotorg/synapse:latest
或者
创建第一个管理员用户
docker exec -it matrix register_new_matrix_user http://localhost:8008 -c /data/homeserver.yaml -a -u 用户名 -p 密码
配置 Synapse 服务端
地址:/mnt/user/appdata/matrix/server/data/homeserver.yaml
建议亲自阅读一遍官方文档:https://element-hq.github.io/synapse/latest/welcome_and_overview.html
配置好之后重启容器即可
下面是一些基础配置
email:
smtp_host: smtp.163.com #你的smtp服务器
smtp_port: 465 #一般是465
smtp_user: "xxx@163.com" #自行填写
smtp_pass: "xxxxx" #自行填写
force_tls: true
require_transport_security: true
enable_tls: true
notif_from: "xxx@163.com" #修改为你想要设置的发件人名称
enable_notifs: true
notif_for_new_users: false
client_base_url: "https:/xxxx" #修改为你的客户端域名
validation_token_lifetime: 15m
invite_client_location: https://xxxx #修改为你的客户端域名
# vim:ft=yaml
# 为新用户启用注册
enable_registration: true
# 默认情况下,其他服务器将尝试通过端口 8448 访问我们的服务器,告诉其他服务器将流量发送到端口 443
serve_server_wellknown: true
registrations_require_3pid: #允许的3pid注册方式
- email
#turn服务器信息
turn_uris: [turn:xxx.com]
turn_username: "xxx"
turn_password: "xxx"
turn_user_lifetime: 2h
#新用户自动加入的房间
auto_join_rooms:
- "#living-room:matrix.dk-groups.com"
trusted_key_servers:
- server_name: "matrix.org"
suppress_key_server_warning: true
部署好之后要使用nginx等软件反向代理到自己的域名,客户端的使用参考官网。
server {
server_name xxx.com;
listen 443 ssl;
ssl_certificate fullchain.crt;
ssl_certificate_key private.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
listen 80;
if ($scheme = http) {
return 301 https://$host:443$request_uri;
}
location / {
root /home/Element;
index index.html;
}
location ~ ^/(_matrix|.well-known|_synapse)/ {
proxy_pass http://127.0.0.1:8008;
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 X-Forwarded-Host $http_host;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_redirect http:// https://;
}
}