
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
本镜像基于matrixdotorg的worker Dockerfile构建,是专为Unraid系统设计的Matrix Synapse家庭服务器(homeserver)镜像。它简化了Synapse的部署与管理,提供自动配置生成和多进程工作进程(worker)支持,适合需要高效管理Matrix家庭服务器的用户。
自动配置生成
删除主配置文件homeserver.yaml后,镜像会基于环境变量自动重建配置,保持配置文件清洁且与最新版本同步。若使用现有homeserver.yaml,需手动将主监听端口从默认8008修改为8080(因内部反向代理需求)。
灵活的多进程支持
通过环境变量指定worker类型即可启用多进程模式,无需复杂配置。镜像会自动处理反向代理和复制,支持动态添加/移除worker,提升服务器性能。
matrix.org)进行联邦的部署@someone:example.com,服务器名称必须设为example.com,而非matrix.example.com。详情参考https://matrix-org.github.io/synapse/latest/usage/configuration/config_documentation.html#server_name%E3%80%82matrix.org)前,必须备份密钥和数据库。若重建服务器时密钥不一致,其他服务器可能拒绝连接。必填环境变量
| 变量名 | 说明 | 取值示例 |
|---|---|---|
SYNAPSE_SERVER_NAME | 服务器名称,决定用户ID格式(如@user:example.com中的example.com) | example.com |
SYNAPSE_REPORT_STATS | 是否向Matrix官方报告使用统计 | yes或no(必填) |
Worker配置
通过SYNAPSE_WORKER_TYPES变量配置工作进程,支持多进程模式:
取值说明:
full:启用完整worker集(推荐生产环境)支持的worker类型:
account_data, event_persister, presence, receipts, to_device, typing,
background_worker, event_creator, frontend_proxy, media_repository, pusher, synchrotron, user_dir,
client_reader, federation_sender, federation_inbound, federation_reader
full包含的worker:
account_data, background_worker, event_creator, event_persister, federation_inbound, federation_reader, federation_sender, frontend_proxy, media_repository, presence, pusher, receipts, to_device, typing, synchrotron, user_dir
可选配置变量
| 变量名 | 说明 | 取值范围/默认值 |
|---|---|---|
SYNAPSE_WORKERS_WRITE_LOGS_TO_DISK | 是否将worker日志写入磁盘 | 1(启用)/0(禁用),默认0 |
SYNAPSE_LOG_LEVEL | 日志级别 | ERROR, WARNING, INFO(默认), DEBUG |
SYNAPSE_METRICS | 是否启用Prometheus指标导出 | yes/1/true/on启用,其他为禁用 |
POSTGRES_HOST | PostgreSQL数据库主机地址 | 默认127.0.0.1 |
POSTGRES_PORT | PostgreSQL端口 | 默认5432 |
POSTGRES_DB | 数据库名称 | 默认synapse |
POSTGRES_USER | 数据库用户名 | 默认synapse |
POSTGRES_PASSWORD | 数据库密码 | 无默认,需手动设置 |
SYNAPSE_MAX_UPLOAD_SIZE | 最大上传文件大小 | 默认50M,推荐改为2048M |
SYNAPSE_TURN_URIS | TURN服务器URL列表,逗号分隔(无空格) | 例如turn:turn.example.com?transport=udp |
SYNAPSE_TURN_SECRET | TURN服务器密钥 | 自定义字符串 |
SYNAPSE_ENABLE_REGISTRATION | 是否允许公开注册(默认禁用,存在安全风险) | yes/no,默认no |
SYNAPSE_REGISTRATION_SHARED_SECRET | 注册共享密钥(自动生成) | 自动生成,无需手动设置 |
SYNAPSE_MACAROON_SECRET_KEY | Macaroon密钥(自动生成,保存为文件) | 自动生成,无需手动设置 |
SYNAPSE_SERVE_SERVER_WELLKNOWN | 是否提供服务器well-known文件(用于联邦和委托) | True/False,默认False |
SYNAPSE_PUBLIC_BASEURL | 公开基础URL(用于委托,如服务器名称为example.com但反向代理至matrix.example.com) | https://matrix.example.com |
UID/GID | 运行容器的用户/组ID | 默认991/991 |
附加功能变量
以下变量取值为yes/y/1/true/t/on时启用对应功能,其他值禁用:
| 变量名 | 说明 | 依赖条件 |
|---|---|---|
SYNAPSE_METRICS | 启用内置Prometheus指标服务 | 无 |
SYNAPSE_ENABLE_REDIS_METRIC_EXPORT | 启用Redis指标导出(Redis内置,多worker时自动使用) | SYNAPSE_METRICS启用 |
SYNAPSE_ENABLE_POSTGRES_METRIC_EXPORT | 启用PostgreSQL指标导出 | SYNAPSE_METRICS启用 |
SYNAPSE_ENABLE_COMPRESSOR | 启用数据库压缩工具(每周日1点自动运行) | POSTGRES_PASSWORD设置 |
SYNAPSE_ENABLE_BUILTIN_COTURN | 启用内置COTURN服务器 | 无 |
COTURN_MIN_PORT/COTURN_MAX_PORT | COTURN服务器端口范围 | 默认49153/49173 |
| 路径 | 说明 | 必要性 |
|---|---|---|
/data | 存储配置文件(如homeserver.yaml、密钥文件等) | 必填 |
/data/media_store | 存储媒体文件(缩略图、图片、视频等),可能占用大量空间 | 推荐 |
/var/lib/prometheus | 存储Prometheus指标数据库(SQLite),避免容器更新时丢失指标数据 | 推荐 |
/var/run/postgresql | PostgreSQL Unix socket路径(如需通过socket连接数据库) | 可选 |
Docker Run命令
bashdocker run -d \ --name synapse \ -e SYNAPSE_SERVER_NAME=example.com \ -e SYNAPSE_REPORT_STATS=yes \ -e SYNAPSE_WORKER_TYPES=full \ -e SYNAPSE_MAX_UPLOAD_SIZE=2048M \ -v /path/to/appdata/synapse:/data \ -v /path/to/media_store:/data/media_store \ -v /path/to/prometheus:/var/lib/prometheus \ -p 8080:8080 \ your-image-name:latest
Docker Compose配置
yamlversion: '3' services: synapse: image: your-image-name:latest container_name: synapse restart: unless-stopped environment: - SYNAPSE_SERVER_NAME=example.com - SYNAPSE_REPORT_STATS=yes - SYNAPSE_WORKER_TYPES=full - SYNAPSE_MAX_UPLOAD_SIZE=2048M - POSTGRES_HOST=postgres - POSTGRES_USER=synapse - POSTGRES_PASSWORD=your-secure-password - POSTGRES_DB=synapse volumes: - /path/to/appdata/synapse:/data - /path/to/media_store:/data/media_store - /path/to/prometheus:/var/lib/prometheus ports: - "8080:8080" depends_on: - postgres postgres: image: postgres:14 container_name: synapse-postgres restart: unless-stopped environment: - POSTGRES_USER=synapse - POSTGRES_PASSWORD=your-secure-password - POSTGRES_DB=synapse volumes: - /path/to/postgres-data:/var/lib/postgresql/data
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务
以下是 realtyem/synapse 相关的常用 Docker 镜像,适用于 不同场景 等不同场景: