Synapse

Synapse 是由 Matrix.org 基金会编写和维护的开源Matrix家庭服务器。

生成配置文件

  • 创建前需要使用终端运行以下命令创建依赖配置文件,需要按需修改参数 my.matrix.host

docker run -it --rm \
  -v synapse-data:/data \  # 挂载一个卷,将容器内的 /data 目录映射到 synapse-data 卷
  -e SYNAPSE_SERVER_NAME=my.matrix.host \  # 设置 Synapse 服务器的公共主机名
  -e SYNAPSE_REPORT_STATS=no \  # 禁用匿名统计报告
  -e SYNAPSE_HTTP_PORT=8008 \  # 设置 Synapse 监听的 HTTP 端口为 8008
  -e SYNAPSE_CONFIG_DIR=/data \  # 设置配置文件的存储位置为 /data
  -e SYNAPSE_DATA_DIR=/data \  # 设置持久数据的存储位置为 /data
  -e TZ=Asia/Shanghai \  # 设置容器的时区为亚洲/上海
  -e UID=1000 \  # 设置运行 Synapse 的用户 ID
  -e GID=1000 \  # 设置运行 Synapse 的用户组 ID
  matrixdotorg/synapse:latest generate  # 运行最新版本的 matrixdotorg/synapse 镜像,并执行 generate 命令来生成配置文件

配置文件默认存放路径是在 synapse-data 存储卷里,/var/lib/docker/volumes/synapse-data/_data

创建应用

1.用1Panel面板安装

端口号可以自己成其它

创建好之后关闭容器,然后容器编辑添加端口8448

2.docker run命令安装

docker run -d --name synapse -v /var/matrix-synapse-data/:/data/ -p 8008:8008 -p 8009:8009 -p 8448:8448 matrixdotorg/synapse:latest

3.创建管理员账号

进入容器终端创建管理员账号

register_new_matrix_user  http://localhost:8008 -c /data/homeserver.yaml  -a -u 管理员用户名 -p 密码

进入容器终端创建普通用户账号

register_new_matrix_user  http://localhost:8008 -c /data/homeserver.yaml   --no-admin -u 普通用户名 -p 密码

4.配置反向代理以及联邦功能

location /.well-known/matrix/server {
    default_type application/json;
    return 200 '{"m.server": "mx.taobaolm.cn:443"}';
}

这样就创建成功了

homeserver.yaml配置你可以参考下

# Configuration file for Synapse.

server_name: "**.******.cn"
pid_file: /data/homeserver.pid
listeners:
  - port: 8008
    tls: false
    type: http
    x_forwarded: true
    resources:
      - names: [client, federation]
        compress: false

database:
  name: psycopg2
  args:
    user: 123                  # 合法的数据库用户名
    password: "4567854455"  # 保持现有密码
    database: 123              # 合法的数据库名
    host: postgresql
    port: 5432
    cp_min: 5
    cp_max: 10

log_config: "/data/**.*****.cn.log.config"
media_store_path: /data/media_store
registration_shared_secret: "***************"
report_stats: false
macaroon_secret_key: "*********************************"
form_secret: "******************************"
signing_key_path: "/data/**.*****.cn.signing.key"
trusted_key_servers:
  - server_name: "matrix.org"

# vim:ft=yaml