{ config, ... }:
{
  imports = [ ./nginx ];

  services = {
    coturn = {
      enable = true;
      no-cli = true;
      no-tcp-relay = true;
      min-port = 49000;
      max-port = 50000;
      use-auth-secret = true;
      static-auth-secret = config.secrets.coturnSecret;
      realm = "turn.${config.domains.jim1}";
      cert = "/var/lib/acme/turn.${config.domains.jim1}.com/fullchain.pem";
      pkey = "/var/lib/acme/turn.${config.domains.jim1}.com/key.pem";
    };

    # Enable coturn on Synapse
    matrix-synapse.settings = {
      turn_uris = [
        "turn:turn.${config.domains.jim1}:3478?transport=udp"
        "turn:turn.${config.domains.jim1}:3478?transport=tcp"
      ];
      turn_shared_secret = config.secrets.coturnSecret;
      turn_user_lifetime = "1h";
    };
  };

  # Open coturn ports
  networking.firewall = {
    allowedUDPPorts = [
      3478
      5349
    ];
    allowedUDPPortRanges = [{
      from = config.services.coturn.min-port;
      to = config.services.coturn.max-port;
    }];
  };
}
