本镜像基于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。详情参考***文档。matrix.org)前,必须备份密钥和数据库。若重建服务器时密钥不一致,其他服务器可能拒绝连接。| 变量名 | 说明 | 取值示例 |
|---|---|---|
SYNAPSE_SERVER_NAME | 服务器名称,决定用户ID格式(如@user:example.com中的example.com) | example.com |
SYNAPSE_REPORT_STATS | 是否向Matrix***报告使用统计 | yes或no(必填) |
通过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) | [***] |
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连接数据库) | 可选 |
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
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 Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429