6334f6c1ea
Depending on the distro, common commands like sleep and chown may either be located in /bin or /usr/bin. Systemd added path lookup to ExecStart in v239, allowing only the command name to be put in unit files and not the full path as historically required. At least Ubuntu 18.04 LTS is however still on v237 so we should maintain portability for a while longer.
56 lines
2.2 KiB
Django/Jinja
56 lines
2.2 KiB
Django/Jinja
#jinja2: lstrip_blocks: "True"
|
|
[Unit]
|
|
Description=Matrix Coturn server
|
|
{% for service in matrix_coturn_systemd_required_services_list %}
|
|
Requires={{ service }}
|
|
After={{ service }}
|
|
{% endfor %}
|
|
|
|
[Service]
|
|
Type=simple
|
|
ExecStartPre=-{{ matrix_host_command_docker }} kill matrix-coturn
|
|
ExecStartPre=-{{ matrix_host_command_docker }} rm matrix-coturn
|
|
|
|
ExecStart={{ matrix_host_command_docker }} run --rm --name matrix-coturn \
|
|
--log-driver=none \
|
|
--user={{ matrix_user_uid }}:{{ matrix_user_gid }} \
|
|
--cap-drop=ALL \
|
|
--entrypoint=turnserver \
|
|
--read-only \
|
|
--tmpfs=/var/tmp:rw,noexec,nosuid,size=100m \
|
|
--network={{ matrix_coturn_docker_network }} \
|
|
{% if matrix_coturn_container_stun_plain_host_bind_port != '' %}
|
|
-p {{ matrix_coturn_container_stun_plain_host_bind_port }}:3478 \
|
|
-p {{ matrix_coturn_container_stun_plain_host_bind_port }}:3478/udp \
|
|
{% endif %}
|
|
{% if matrix_coturn_container_stun_tls_host_bind_port != '' %}
|
|
-p {{ matrix_coturn_container_stun_tls_host_bind_port }}:5349 \
|
|
-p {{ matrix_coturn_container_stun_tls_host_bind_port }}:5349/udp \
|
|
{% endif %}
|
|
{% if matrix_coturn_container_turn_range_listen_interface is not none %}
|
|
-p {{ matrix_coturn_container_turn_range_listen_interface }}{{ ':' if matrix_coturn_container_turn_range_listen_interface else '' }}{{ matrix_coturn_turn_udp_min_port }}-{{ matrix_coturn_turn_udp_max_port }}:{{ matrix_coturn_turn_udp_min_port }}-{{ matrix_coturn_turn_udp_max_port }}/udp \
|
|
{% endif %}
|
|
-v {{ matrix_coturn_config_path }}:/turnserver.conf:ro \
|
|
{% for volume in matrix_coturn_container_additional_volumes %}
|
|
-v {{ volume.src }}:{{ volume.dst }}:{{ volume.options }} \
|
|
{% endfor %}
|
|
{% for arg in matrix_coturn_container_extra_arguments %}
|
|
{{ arg }} \
|
|
{% endfor %}
|
|
{{ matrix_coturn_docker_image }} \
|
|
-c /turnserver.conf
|
|
|
|
ExecStop=-{{ matrix_host_command_docker }} kill matrix-coturn
|
|
ExecStop=-{{ matrix_host_command_docker }} rm matrix-coturn
|
|
|
|
# This only reloads certificates (not other configuration).
|
|
# See: https://github.com/coturn/coturn/pull/236
|
|
ExecReload={{ matrix_host_command_docker }} exec matrix-coturn kill -USR2 1
|
|
|
|
Restart=always
|
|
RestartSec=30
|
|
SyslogIdentifier=matrix-coturn
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|