# DDClient is a dynamic dns service
{ config, pkgs, ... }:
{
  services.ddclient = {
    enable = true;
    interval = "1m";
    configFile = config.sops.templates."ddclient.conf".path;

    # REASON: latest release doesn't support explicit root-domain annotations for porkbun
    package = pkgs.ddclient.overrideAttrs (_: {
      src = pkgs.fetchFromGitHub {
        owner = "ddclient";
        repo = "ddclient";
        rev = "9885d55a3741363ad52d3463cb846d5782efb073";
        sha256 = "0zyi8h13y18vrlxavx1vva4v0ya5v08bxdxlr3is49in3maz2n37";
      };
    });
  };

  sops.templates."ddclient.conf".content = ''
    # General settings
    cache=/var/lib/ddclient/ddclient.cache # See the nixos module for details
    foreground=YES

    # Routers
    use=web, web=checkip.dyndns.com/, web-skip='Current IP Address: '

    # Protocols
    protocol=porkbun
    apikey=${config.sops.placeholder.porkbun_api_key}
    secretapikey=${config.sops.placeholder.porkbun_secret_api_key}
    root-domain=moonythm.dev # The root domain detection doesn't work properly
    real.lapetus.moonythm.dev
  '';
}