本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
This Docker image will run Synapse as a single process. By default it uses a sqlite database; for production use you should connect it to a separate postgres database. The image also does not provide a TURN server.
This image should work on all platforms that are supported by Docker upstream. Note that Docker's WS1-backend Linux Containers on Windows platform is experimental and is not supported by this image.
By default, the image expects a single volume, located at /data, that will hold:
You are free to use separate volumes depending on storage endpoints at your
disposal. For instance, /data/media could be stored on a large but low
performance hdd storage while other files could be stored on high performance
endpoints.
In order to setup an application service, simply create an appservices
directory in the data volume and write the application service Yaml
configuration file there. Multiple application services are supported.
The first step is to generate a valid config file. To do this, you can run the
image with the generate command line option.
You will need to specify values for the SYNAPSE_SERVER_NAME and
SYNAPSE_REPORT_STATS environment variable, and mount a docker volume to store
the configuration on. For example:
docker run -it --rm \ --mount type=volume,src=synapse-data,dst=/data \ -e SYNAPSE_SERVER_NAME=my.matrix.host \ -e SYNAPSE_REPORT_STATS=yes \ matrixdotorg/synapse:latest generate
For information on picking a suitable server name, see [***]
The above command will generate a homeserver.yaml in (typically)
/var/lib/docker/volumes/synapse-data/_data. You should check this file, and
customise it to your needs.
The following environment variables are supported in generate mode:
SYNAPSE_SERVER_NAME (mandatory): the server public hostname.SYNAPSE_REPORT_STATS (mandatory, yes or no): whether to enable
anonymous statistics reporting.SYNAPSE_HTTP_PORT: the port Synapse should listen on for http traffic.
Defaults to 8008.SYNAPSE_CONFIG_DIR: where additional config files (such as the log config
and event signing key) will be stored. Defaults to /data.SYNAPSE_CONFIG_PATH: path to the file to be generated. Defaults to
<SYNAPSE_CONFIG_DIR>/homeserver.yaml.SYNAPSE_DATA_DIR: where the generated config will put persistent data
such as the database and media store. Defaults to /data.UID, GID: the user id and group id to use for creating the data
directories. Defaults to 991, 991.Once you have a valid configuration file, you can start synapse as follows:
docker run -d --name synapse \ --mount type=volume,src=synapse-data,dst=/data \ -p 8008:8008 \ matrixdotorg/synapse:latest
(assuming 8008 is the port Synapse is configured to listen on for http traffic.)
You can then check that it has started correctly with:
docker logs synapse
If all is well, you should now be able to connect to http://localhost:8008 and see a confirmation message.
The following environment variables are supported in run mode:
SYNAPSE_CONFIG_DIR: where additional config files are stored. Defaults to
/data.SYNAPSE_CONFIG_PATH: path to the config file. Defaults to
<SYNAPSE_CONFIG_DIR>/homeserver.yaml.SYNAPSE_WORKER: module to execute, used when running synapse with workers.
Defaults to synapse.app.homeserver, which is suitable for non-worker mode.UID, GID: the user and group id to run Synapse as. Defaults to 991, 991.TZ: the timezone the container will run with. Defaults to UTC.For more complex setups (e.g. for workers) you can also pass your args directly to synapse using run mode. For example like this:
docker run -d --name synapse \ --mount type=volume,src=synapse-data,dst=/data \ -p 8008:8008 \ matrixdotorg/synapse:latest run \ -m synapse.app.generic_worker \ --config-path=/data/homeserver.yaml \ --config-path=/data/generic_worker.yaml
If you do not provide -m, the value of the SYNAPSE_WORKER environment variable is used. If you do not provide at least one --config-path or -c, the value of the SYNAPSE_CONFIG_PATH environment variable is used instead.
After synapse is running, you may wish to create a user via register_new_matrix_user.
This requires a registration_shared_secret to be set in your config file. Synapse
must be restarted to pick up this change.
You can then call the script:
docker exec -it synapse register_new_matrix_user http://localhost:8008 -c /data/homeserver.yaml --help
Remember to remove the registration_shared_secret and restart if you no-longer need it.
The default configuration exposes a single HTTP port: http://localhost:8008. It is suitable for local testing, but for any practical use, you will either need to use a reverse proxy, or configure Synapse to expose an HTTPS port.
For documentation on using a reverse proxy, see [***]
For more information on enabling TLS support in synapse itself, see
[***] Of
course, you will need to expose the TLS port from the container with a -p
argument to docker run.
The docker image used to support creating a dynamic configuration file based on environment variables. This is no longer supported, and an error will be raised if you try to run synapse without a config file.
It is, however, possible to generate a static configuration file based on
the environment variables that were previously used. To do this, run the docker
container once with the environment variables set, and migrate_config
command line option. For example:
docker run -it --rm \ --mount type=volume,src=synapse-data,dst=/data \ -e SYNAPSE_SERVER_NAME=my.matrix.host \ -e SYNAPSE_REPORT_STATS=yes \ matrixdotorg/synapse:latest migrate_config
This will generate the same configuration file as the legacy mode used, and
will store it in /data/homeserver.yaml. You can then use it as shown above at
Running synapse.
Note that the defaults used in this configuration file may be different to
those when generating a new config file with generate: for example, TLS is
enabled by default in this mode. You are encouraged to inspect the generated
configuration file and edit it to ensure it meets your needs.
If you need to build the image from a Synapse checkout, use the following docker build command from the repo's root:
docker build -t matrixdotorg/synapse -f docker/Dockerfile .
You can choose to build a different docker image by changing the value of the -f flag to
point to another Dockerfile.
If you are using a non-standard port or tls inside docker you can disable the healthcheck
whilst running the above docker run commands.
--no-healthcheck
If you wish to disable the healthcheck via docker-compose, append the following to your service configuration.
healthcheck: disable: true
If you wish to point the healthcheck at a different port with docker command, add the following
--health-cmd 'curl -fSs http://localhost:1234/health'
You can add the following to set a custom healthcheck in a docker compose file. You will need docker-compose version >2.1 for this to work.
healthcheck: test: ["CMD", "curl", "-fSs", "http://localhost:8008/health"] interval: 15s timeout: 5s retries: 3 start_period: 5s
Jemalloc is embedded in the image and will be used instead of the default allocator. You can read about jemalloc by reading the Synapse README.
免费版仅支持 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 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429