mirror of
https://github.com/spantaleev/matrix-docker-ansible-deploy.git
synced 2024-12-27 11:28:31 +01:00
bfcceb1e82
This is described in Github issue #58. Until now, we had the variable, but if you redefined it, you'd run into multiple problems: - we actually always mounted some "storage" directory to the Synapse container. So if your media store is not there, you're out of luck - homeserver.yaml always hardcoded the path to the media store, as a directory called "media-store" inside the storage directory. Relocating to outside the storage directory was out of the question. Moreover, even if you had simply renamed the media store directory (e.g. "media-store" -> "media_store"), it would have also caused trouble. With this patch, we mount the media store's parent to the Synapse container. This way, we don't care where the media store is (inside storage or not). We also don't assume (anymore) that the final part of the path is called "media-store" -- anything can be used. The "storage" directory and variable (`matrix_synapse_storage_path`) still remain for compatibility purposes. People who were previously overriding `matrix_synapse_storage_path` can continue doing so and their media store will be at the same place. The playbook no longer explicitly creates the `matrix_synapse_storage_path` directory though. It's not necessary. If the media store is specified to be within it, it will get created when the media store directory is created by the playbook.
52 lines
1.7 KiB
Django/Jinja
52 lines
1.7 KiB
Django/Jinja
[Unit]
|
|
Description=Matrix Synapse server
|
|
After=docker.service
|
|
Requires=docker.service
|
|
{% if not matrix_postgres_use_external %}
|
|
Requires=matrix-postgres.service
|
|
After=matrix-postgres.service
|
|
{% endif %}
|
|
{% if matrix_s3_media_store_enabled %}
|
|
After=matrix-goofys.service
|
|
Requires=matrix-goofys.service
|
|
{% endif %}
|
|
{% if matrix_mailer_enabled %}
|
|
Wants=matrix-mailer.service
|
|
{% endif %}
|
|
Wants=matrix-coturn.service
|
|
|
|
[Service]
|
|
Type=simple
|
|
ExecStartPre=-/usr/bin/docker kill matrix-synapse
|
|
ExecStartPre=-/usr/bin/docker rm matrix-synapse
|
|
{% if matrix_s3_media_store_enabled %}
|
|
# Allow for some time before starting, so that media store can mount.
|
|
# Mounting can happen later too, but if we start writing,
|
|
# we'd write files to the local filesystem and fusermount will complain.
|
|
ExecStartPre=/bin/sleep 5
|
|
{% endif %}
|
|
ExecStart=/usr/bin/docker run --rm --name matrix-synapse \
|
|
--log-driver=none \
|
|
--env-file={{ matrix_environment_variables_data_path }}/synapse \
|
|
--network={{ matrix_docker_network }} \
|
|
{% if matrix_synapse_federation_enabled %}
|
|
-p 8448:8448 \
|
|
{% endif %}
|
|
{% if not matrix_nginx_proxy_enabled %}
|
|
-p 127.0.0.1:8008:8008 \
|
|
{% endif %}
|
|
-v {{ matrix_synapse_config_dir_path }}:/data \
|
|
-v {{ matrix_synapse_run_path }}:/matrix-run \
|
|
-v {{ matrix_synapse_base_path }}/storage:/matrix-media-store-parent:slave \
|
|
{% for volume in matrix_synapse_container_additional_volumes %}
|
|
-v {{ volume.src }}:{{ volume.dst }}:{{ volume.options }} \
|
|
{% endfor %}
|
|
{{ matrix_synapse_docker_image }}
|
|
ExecStop=-/usr/bin/docker kill matrix-synapse
|
|
ExecStop=-/usr/bin/docker rm matrix-synapse
|
|
Restart=always
|
|
RestartSec=30
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|