
本镜像基于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
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。



探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务