As described here ( https://github.com/matrix-org/synapse/issues/2438#issuecomment-327424711 ), using own SSL certificates for the federation port is more fragile, as renewing them could cause federation outages. The recommended setup is to use the self-signed certificates generated by Synapse. On the 443 port (matrix-nginx-proxy) side, we still use the Let's Encrypt certificates, which ensures API consumers work without having to trust "our own CA". Having done this, we also don't need to ever restart Synapse anymore, as no new SSL certificates need to be applied there. It's just matrix-nginx-proxy that needs to be restarted, and it doesn't even need a full restart as an "nginx reload" does the job of swithing to the new SSL certificates.
30 lines
900 B
Django/Jinja
30 lines
900 B
Django/Jinja
[Unit]
|
|
Description=Matrix nginx proxy server
|
|
After=docker.service
|
|
Requires=docker.service
|
|
Requires=matrix-synapse.service
|
|
After=matrix-synapse.service
|
|
Requires=matrix-riot-web.service
|
|
After=matrix-riot-web.service
|
|
|
|
[Service]
|
|
Type=simple
|
|
ExecStartPre=-/usr/bin/docker kill matrix-nginx-proxy
|
|
ExecStartPre=-/usr/bin/docker rm matrix-nginx-proxy
|
|
ExecStart=/usr/bin/docker run --rm --name matrix-nginx-proxy \
|
|
-p 80:80 \
|
|
-p 443:443 \
|
|
--link matrix-synapse:synapse \
|
|
--link matrix-riot-web:riot \
|
|
-v {{ matrix_nginx_proxy_confd_path }}:/etc/nginx/conf.d \
|
|
-v {{ matrix_ssl_certs_path }}:{{ matrix_ssl_certs_path }} \
|
|
{{ docker_nginx_image }}
|
|
ExecStop=-/usr/bin/docker kill matrix-nginx-proxy
|
|
ExecStop=-/usr/bin/docker rm matrix-nginx-proxy
|
|
ExecReload=/usr/bin/docker exec matrix-nginx-proxy /usr/sbin/nginx -s reload
|
|
Restart=always
|
|
RestartSec=30
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|