Add Traefik support to Hookshot
This commit is contained in:
100
roles/custom/matrix-bridge-hookshot/templates/labels.j2
Normal file
100
roles/custom/matrix-bridge-hookshot/templates/labels.j2
Normal file
@ -0,0 +1,100 @@
|
||||
{% if matrix_hookshot_container_labels_traefik_enabled %}
|
||||
traefik.enable=true
|
||||
|
||||
{% if matrix_hookshot_container_labels_traefik_docker_network %}
|
||||
traefik.docker.network={{ matrix_hookshot_container_labels_traefik_docker_network }}
|
||||
{% endif %}
|
||||
|
||||
{# Webhooks #}
|
||||
{% if matrix_hookshot_container_labels_webhooks_enabled %}
|
||||
traefik.http.routers.matrix-hookshot-webhooks.rule={{ matrix_hookshot_container_labels_webhooks_traefik_rule }}
|
||||
traefik.http.routers.matrix-hookshot-webhooks.middlewares=matrix-hookshot-webhooks-strip-prefix
|
||||
{% if matrix_hookshot_container_labels_webhooks_traefik_priority | int > 0 %}
|
||||
traefik.http.routers.matrix-hookshot-webhooks.priority={{ matrix_hookshot_container_labels_webhooks_traefik_priority }}
|
||||
{% endif %}
|
||||
traefik.http.routers.matrix-hookshot-webhooks.service=matrix-hookshot-webhooks
|
||||
traefik.http.routers.matrix-hookshot-webhooks.entrypoints={{ matrix_hookshot_container_labels_webhooks_traefik_entrypoints }}
|
||||
traefik.http.routers.matrix-hookshot-webhooks.tls={{ matrix_hookshot_container_labels_webhooks_traefik_tls | to_json }}
|
||||
{% if matrix_hookshot_container_labels_webhooks_traefik_tls %}
|
||||
traefik.http.routers.matrix-hookshot-webhooks.tls.certResolver={{ matrix_hookshot_container_labels_webhooks_traefik_tls_certResolver }}
|
||||
{% endif %}
|
||||
traefik.http.middlewares.matrix-hookshot-webhooks-strip-prefix.stripprefix.prefixes={{ matrix_hookshot_webhook_endpoint }}
|
||||
traefik.http.services.matrix-hookshot-webhooks.loadbalancer.server.port={{ matrix_hookshot_webhook_port }}
|
||||
{% endif %}
|
||||
|
||||
{# Appservice #}
|
||||
{% if matrix_hookshot_container_labels_appservice_enabled %}
|
||||
traefik.http.routers.matrix-hookshot-appservice.rule={{ matrix_hookshot_container_labels_appservice_traefik_rule }}
|
||||
traefik.http.routers.matrix-hookshot-appservice.middlewares=matrix-hookshot-appservice-strip-prefix
|
||||
{% if matrix_hookshot_container_labels_appservice_traefik_priority | int > 0 %}
|
||||
traefik.http.routers.matrix-hookshot-appservice.priority={{ matrix_hookshot_container_labels_appservice_traefik_priority }}
|
||||
{% endif %}
|
||||
traefik.http.routers.matrix-hookshot-appservice.service=matrix-hookshot-appservice
|
||||
traefik.http.routers.matrix-hookshot-appservice.entrypoints={{ matrix_hookshot_container_labels_appservice_traefik_entrypoints }}
|
||||
traefik.http.routers.matrix-hookshot-appservice.tls={{ matrix_hookshot_container_labels_appservice_traefik_tls | to_json }}
|
||||
{% if matrix_hookshot_container_labels_appservice_traefik_tls %}
|
||||
traefik.http.routers.matrix-hookshot-appservice.tls.certResolver={{ matrix_hookshot_container_labels_appservice_traefik_tls_certResolver }}
|
||||
{% endif %}
|
||||
traefik.http.middlewares.matrix-hookshot-appservice-strip-prefix.stripprefix.prefixes={{ matrix_hookshot_appservice_endpoint }}
|
||||
traefik.http.services.matrix-hookshot-appservice.loadbalancer.server.port={{ matrix_hookshot_appservice_port }}
|
||||
{% endif %}
|
||||
|
||||
{# Widgets #}
|
||||
{% if matrix_hookshot_container_labels_widgets_enabled %}
|
||||
traefik.http.routers.matrix-hookshot-widgets.rule={{ matrix_hookshot_container_labels_widgets_traefik_rule }}
|
||||
traefik.http.routers.matrix-hookshot-widgets.middlewares=matrix-hookshot-widgets-strip-prefix
|
||||
{% if matrix_hookshot_container_labels_widgets_traefik_priority | int > 0 %}
|
||||
traefik.http.routers.matrix-hookshot-widgets.priority={{ matrix_hookshot_container_labels_widgets_traefik_priority }}
|
||||
{% endif %}
|
||||
traefik.http.routers.matrix-hookshot-widgets.service=matrix-hookshot-widgets
|
||||
traefik.http.routers.matrix-hookshot-widgets.entrypoints={{ matrix_hookshot_container_labels_widgets_traefik_entrypoints }}
|
||||
traefik.http.routers.matrix-hookshot-widgets.tls={{ matrix_hookshot_container_labels_widgets_traefik_tls | to_json }}
|
||||
{% if matrix_hookshot_container_labels_widgets_traefik_tls %}
|
||||
traefik.http.routers.matrix-hookshot-widgets.tls.certResolver={{ matrix_hookshot_container_labels_widgets_traefik_tls_certResolver }}
|
||||
{% endif %}
|
||||
traefik.http.middlewares.matrix-hookshot-widgets-strip-prefix.stripprefix.prefixes={{ matrix_hookshot_widgets_endpoint }}
|
||||
traefik.http.services.matrix-hookshot-widgets.loadbalancer.server.port={{ matrix_hookshot_widgets_port }}
|
||||
{% endif %}
|
||||
|
||||
{# Widgets #}
|
||||
{% if matrix_hookshot_container_labels_provisioning_enabled %}
|
||||
traefik.http.routers.matrix-hookshot-provisioning.rule={{ matrix_hookshot_container_labels_provisioning_traefik_rule }}
|
||||
traefik.http.routers.matrix-hookshot-provisioning.middlewares=matrix-hookshot-provisioning-strip-prefix
|
||||
{% if matrix_hookshot_container_labels_provisioning_traefik_priority | int > 0 %}
|
||||
traefik.http.routers.matrix-hookshot-provisioning.priority={{ matrix_hookshot_container_labels_provisioning_traefik_priority }}
|
||||
{% endif %}
|
||||
traefik.http.routers.matrix-hookshot-provisioning.service=matrix-hookshot-provisioning
|
||||
traefik.http.routers.matrix-hookshot-provisioning.entrypoints={{ matrix_hookshot_container_labels_provisioning_traefik_entrypoints }}
|
||||
traefik.http.routers.matrix-hookshot-provisioning.tls={{ matrix_hookshot_container_labels_provisioning_traefik_tls | to_json }}
|
||||
{% if matrix_hookshot_container_labels_provisioning_traefik_tls %}
|
||||
traefik.http.routers.matrix-hookshot-provisioning.tls.certResolver={{ matrix_hookshot_container_labels_provisioning_traefik_tls_certResolver }}
|
||||
{% endif %}
|
||||
traefik.http.middlewares.matrix-hookshot-provisioning-strip-prefix.stripprefix.prefixes={{ matrix_hookshot_provisioning_endpoint }}
|
||||
traefik.http.services.matrix-hookshot-provisioning.loadbalancer.server.port={{ matrix_hookshot_provisioning_port }}
|
||||
{% endif %}
|
||||
|
||||
{# Metrics #}
|
||||
{% set metricsMiddlewares = ['matrix-hookshot-metrics-replace-path'] %}
|
||||
traefik.http.middlewares.matrix-hookshot-metrics-replace-path.replacepath.path=/metrics
|
||||
{% if matrix_hookshot_container_labels_metrics_middleware_basic_auth_enabled %}
|
||||
{% set metricsMiddlewares = metricsMiddlewares + ['matrix-hookshot-metrics-basic-auth'] %}
|
||||
traefik.http.middlewares.matrix-hookshot-metrics-basic-auth.basicauth.users={{ matrix_hookshot_container_labels_metrics_middleware_basic_auth_users }}
|
||||
{% endif %}
|
||||
{% if matrix_hookshot_container_labels_metrics_enabled %}
|
||||
traefik.http.routers.matrix-hookshot-metrics.rule={{ matrix_hookshot_container_labels_metrics_traefik_rule }}
|
||||
traefik.http.routers.matrix-hookshot-metrics.middlewares={{ metricsMiddlewares | join(',') }}
|
||||
{% if matrix_hookshot_container_labels_metrics_traefik_priority | int > 0 %}
|
||||
traefik.http.routers.matrix-hookshot-metrics.priority={{ matrix_hookshot_container_labels_metrics_traefik_priority }}
|
||||
{% endif %}
|
||||
traefik.http.routers.matrix-hookshot-metrics.service=matrix-hookshot-metrics
|
||||
traefik.http.routers.matrix-hookshot-metrics.entrypoints={{ matrix_hookshot_container_labels_metrics_traefik_entrypoints }}
|
||||
traefik.http.routers.matrix-hookshot-metrics.tls={{ matrix_hookshot_container_labels_metrics_traefik_tls | to_json }}
|
||||
{% if matrix_hookshot_container_labels_metrics_traefik_tls %}
|
||||
traefik.http.routers.matrix-hookshot-metrics.tls.certResolver={{ matrix_hookshot_container_labels_metrics_traefik_tls_certResolver }}
|
||||
{% endif %}
|
||||
traefik.http.services.matrix-hookshot-metrics.loadbalancer.server.port={{ matrix_hookshot_metrics_port }}
|
||||
{% endif %}
|
||||
|
||||
{% endif %}
|
||||
|
||||
{{ matrix_hookshot_container_labels_additional_labels }}
|
@ -21,6 +21,7 @@ ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create --rm -
|
||||
--cap-drop=ALL \
|
||||
--network={{ matrix_hookshot_container_network }} \
|
||||
--mount type=bind,src={{ matrix_hookshot_base_path }},dst=/data \
|
||||
--label-file={{ matrix_hookshot_base_path }}/labels \
|
||||
{% for port in matrix_hookshot_container_http_host_bind_ports %}
|
||||
-p {{ port }} \
|
||||
{% endfor %}
|
||||
|
Reference in New Issue
Block a user