724 字
4 分钟
QQ微信不够私密?自建自己的聊天服务器!
2025-08-02
加载中...

前置环境准备#

由于Synapse、Matrix(下文简称”矩阵“)手搓部署非常麻烦。所以请安装 1Panel面板

部署PostgreSQL#

安装并创建名为 synapse 用户名也为 synapse 的数据库

前往应用商店安装 PGAdmin4

接着点击添加服务器

相关信息可以在连接信息看到

删除刚刚创建的 synapse 这个数据库

重新创建同名数据库

设置所有者(即用户名)为 synapse

排序规则字符类型 都改为 C

部署Synapse#

首先参照1Panel官方的教程去创建一个存储卷,否则安装 synapse 会失败

安装 synapse

导航到文件管理: /var/lib/docker/volumes/synapse-data/_data

你应该可以看到

编辑 homeserver.yaml ,并按需配置

server_name: "家服务器名称,比如:m.2x.nz"
public_baseurl: "公共URL,比如:https://m.2x.nz"
pid_file: /data/homeserver.pid

listeners:
  - port: 8008
    tls: false
    type: http
    x_forwarded: true
    resources:
      - names: [client, federation]
        compress: false
    response_headers:
      Access-Control-Allow-Origin: "https://app.element.io"
      Access-Control-Allow-Methods: "GET, POST, OPTIONS"
      Access-Control-Allow-Headers: "Content-Type, Authorization"

database:
  name: psycopg2
  args:
    user: synapse
    password: 你的数据库密码
    dbname: synapse
    host: 你的PostgreSQL的容器名称
    cp_min: 5
    cp_max: 10

log_config: "/data/my.matrix.host.log.config"
media_store_path: /data/media_store

registration_shared_secret: "这里的东西是随机生成的,每个人都不一样,请忽略这一块,并使用你的配置"
macaroon_secret_key: "这里的东西是随机生成的,每个人都不一样,请忽略这一块,并使用你的配置"
form_secret: "这里的东西是随机生成的,每个人都不一样,请忽略这一块,并使用你的配置"
signing_key_path: "/data/my.matrix.host.signing.key"

report_stats: false

trusted_key_servers:
  - server_name: "matrix.org"

### ✅ 邮件配置(确保SMTP验证正常)
email:
  smtp_host: "你的SMTP发件服务器"
  smtp_port: 465
  smtp_user: "你的发件邮箱"
  smtp_pass: "你的SMTP密码"
  force_tls: true
  notif_from: "Matrix <你的发件邮箱>"
  validation_token_lifetime: "5m"

### ✅ 启用注册 + 邮箱验证 + 密码找回
enable_registration: true
registrations_require_3pid:
  - email
registration_requires_token: false   # 确保不强制邀请码注册(默认关闭)
password_config:
  enabled: true

### ✅ 允许邮箱登录
login_via_existing_session:
  enabled: true

rc_registration:
  per_second: 0.003  # 每秒允许的注册请求(例如:0.003 ≈ 每5分钟一次)
  burst_count: 1     # 同一IP地址的最大注册突发数

  # 消息发送速率限制
rc_message:
  per_second: 0.2    # 每秒允许发送的消息数
  burst_count: 10    # 突发消息缓冲区大小

# 房间加入速率限制
rc_joins:
  local:
    per_second: 0.1   # 本地用户加入房间的速率
    burst_count: 10
  remote:
    per_second: 0.01  # 远程用户加入房间的速率
    burst_count: 10

auto_join_rooms:
  - "#XXX:你的家服务器URL" # 需要自动加入的房间

按需配置,更多高级配置参阅: Homeserver Sample Config File - Synapse

创建管理员账号#

连接上容器的终端然后输入这串命令创建管理员账号

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

开始聊天#

前往 https://app.element.io 将家服务器改为你的(必须为HTTPS)

通过刚刚创建的管理员账号登录

其他人可以通过邮箱注册

QQ微信不够私密?自建自己的聊天服务器!
https://2x.131714.xyz/posts/self-host-matrix/
作者
二叉树树
发布于
2025-08-02
许可协议
CC BY-NC-SA 4.0