724 字
4 分钟
QQ微信不够私密?自建自己的聊天服务器!
前置环境准备
由于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/