感谢使用海楼端点聊天系统 https://syntalk.737703.xyz,欢迎反馈和交流!
Matrix端点聊天系统部署指南
本项目基于 Matrix 协议,使用 Synapse 作为基础服务器,Element Web 作为前端客户端,通过 Docker Compose 进行容器化部署。支持通过自定义域名和 HTTPS 访问,适合内网穿透和云端部署。
- 一台支持 Docker 和 Docker Compose 的服务器(Linux 推荐)
- 域名解析到服务器或通过 Cloudflare 隧道实现内网穿透
- 已安装 Docker 和 Docker Compose(版本3及以上)
- 创建数据目录:
mkdir -p ./data
text
- 准备
homeserver.yaml配置文件,关键配置示例:
server_name: "你的matrix服务器ip或域名" public_baseurl: "你的matrix服务器域名" #ip不用就不用这项 listeners:
- port: 8008 tls: false type: http x_forwarded: true bind_addresses: ['0.0.0.0'] resources:
- names: [client, federation] compress: false database: name: psycopg2 args: user: synapse01 password: Login01 database: synapse host: postgres port: 5432 cp_min: 5 cp_max: 10
text
- 配置
docker-compose.yml(示例包含 Synapse 和 PostgreSQL):
version: "3"
services: synapse: image: matrixdotorg/synapse:latest container_name: synapse restart: unless-stopped volumes:
- ./data:/data ports:
- "8008:8008" environment:
- SYNAPSE_SERVER_NAME=你的matrix服务器ip或域名
- SYNAPSE_REPORT_STATS=yes
text postgres: image: postgres:14-alpine container_name: synapse-postgres restart: unless-stopped environment: - POSTGRES_USER=用户名 - POSTGRES_PASSWORD=密码 - POSTGRES_DB=synapse volumes: - ./pgdata:/var/lib/postgresql/data text
- 启动服务:
docker compose up -d
text
- 查看日志确认启动成功:
docker logs -f synapse
text
- 准备
config.json,示例:
{ "default_server_config": { "m.homeserver": { "base_url": "你的matrix服务器ip或域名" #IP用http://,域名用https:// }, "m.identity_server": { "base_url": "https://matrix.org" #如果有自建的身份服务器 } }, "brand": "matrix端点聊天系统", "room_directory": { "servers": ["你的matrix服务器ip或域名"] #IP用http://,域名用https:// } }
text
docker-compose.yml添加 Element Web 服务:
element-web: image: vectorim/element-web:latest container_name: element-web restart: unless-stopped ports:
- "8009:80" volumes:
- ./config.json:/app/config.json:ro
text
- 启动 Element Web:
docker compose up -d element-web
text
- 通过浏览器访问
你的elementweb服务域名或ip(或对应域名和端口)使用客户端。
-
域名和 HTTPS:
通过 Cloudflare 隧道或反向代理实现 HTTPS 访问,确保客户端和服务器都使用 HTTPS,避免混合内容问题。 -
数据库:
推荐使用 PostgreSQL,确保数据库配置正确,数据持久化。 -
邮件验证:
配置 SMTP 邮箱发送验证邮件,确保homeserver.yaml中email部分正确填写。
email: smtp_host: smtp.qq.com #也可以用其他邮箱 smtp_port: 587 #qq的465尝试有问题,只能用587 smtp_user: "xxxxxx@qq.com" smtp_pass: "你的SMTP授权码" require_transport_security: true app_name: "matrix端点聊天系统" notif_from: "matrix端点聊天系统 xxxxxx@qq.com" enable_notifs: true notif_for_new_users: true validation_token_lifetime: 15m
text
- 无法通过 HTTPS 访问:确认 Cloudflare 隧道或反向代理配置正确,且 Synapse 监听地址允许外部访问。
- 邮件验证链接失效或提示 Unknown session_id:验证链接只能点击一次,过期需重新发送验证邮件。
- 客户端无法登录或连接失败:检查
config.json中 homeserver 地址是否正确使用 HTTPS 域名。
- 配置
.well-known文件,实现客户端自动发现 homeserver 和身份服务器。 - 添加 TURN 服务器支持,实现语音视频通话功能。
- 优化备份策略,定期备份数据库和媒体文件。
- 配置联邦通信相关 DNS SRV 记录和端口转发。
感谢使用海楼端点聊天系统 https://syntalk.737703.xyz,欢迎反馈和交流!
此文档基于 2025 年 7 月的部署经验编写。