From 4f19db5d76f7a88a497a2596820f274bb64b01f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tristan=20Dani=C3=ABl=20Maat?= <tm@tlater.net> Date: Sun, 16 Feb 2025 18:46:25 +0800 Subject: [PATCH] WIP: chore(coturn): Switch to letsencrypt certificate Fixes #107 --- configuration/services/conduit/default.nix | 7 ++---- configuration/services/metrics/exporters.nix | 10 ++++++++ .../services/metrics/victoriametrics.nix | 24 +++++++++++++++++++ 3 files changed, 36 insertions(+), 5 deletions(-) diff --git a/configuration/services/conduit/default.nix b/configuration/services/conduit/default.nix index c3803f4..18062ed 100644 --- a/configuration/services/conduit/default.nix +++ b/configuration/services/conduit/default.nix @@ -59,11 +59,8 @@ in relay-ips = [ "116.202.158.55" ]; # SSL config - # - # TODO(tlater): Switch to letsencrypt once google fix: - # https://github.com/vector-im/element-android/issues/1533 - pkey = config.sops.secrets."turn/ssl-key".path; - cert = config.sops.secrets."turn/ssl-cert".path; + pkey = "${config.security.acme.certs."tlater.net".directory}/key.pem"; + cert = "${config.security.acme.certs."tlater.net".directory}/fullchain.pem"; # Based on suggestions from # https://github.com/matrix-org/synapse/blob/develop/docs/turn-howto.md diff --git a/configuration/services/metrics/exporters.nix b/configuration/services/metrics/exporters.nix index a47a701..78ba684 100644 --- a/configuration/services/metrics/exporters.nix +++ b/configuration/services/metrics/exporters.nix @@ -20,6 +20,16 @@ in timeout = "5s"; http.preferred_ip_protocol = "ip4"; }; + + turn_server = { + prober = "tcp"; + timeout = "5s"; + tcp = { + preferred_ip_protocol = "ip4"; + source_ip_address = "116.202.158.55"; + tls = true; + }; + }; }; }; }; diff --git a/configuration/services/metrics/victoriametrics.nix b/configuration/services/metrics/victoriametrics.nix index eca65d0..4a78d46 100644 --- a/configuration/services/metrics/victoriametrics.nix +++ b/configuration/services/metrics/victoriametrics.nix @@ -40,6 +40,30 @@ in }; }; + blackbox_turn = { + targets = [ "turn.tlater.net:${toString config.services.coturn.tls-listening-port}" ]; + + extraSettings = { + metrics_path = "/probe"; + params.module = [ "turn_server" ]; + + relabel_configs = [ + { + source_labels = [ "__address__" ]; + target_label = "__param_target"; + } + { + source_labels = [ "__param_target" ]; + target_label = "instance"; + } + { + target_label = "__address__"; + replacement = "${blackbox_host}:${toString blackbox_port}"; + } + ]; + }; + }; + blackbox_exporter.targets = [ "${blackbox_host}:${toString blackbox_port}" ]; coturn.targets = [ "127.0.0.1:9641" ];