{ config, pkgs, ... }: let script = pkgs.replaceVars ../../scripts/cloudflare-ddns.sh { bash = pkgs.bash; curl = pkgs.curl; jq = pkgs.jq; }; cloudflare-ddns = pkgs.writeShellScriptBin "cloudflare-ddns" (builtins.readFile script); in { environment.systemPackages = [ cloudflare-ddns ]; systemd.services.cloudflare-ddns = { description = "Cloudflare DDNS updater"; serviceConfig = { Type = "oneshot"; User = "root"; }; script = "${cloudflare-ddns}/bin/cloudflare-ddns"; }; systemd.timers.cloudflare-ddns = { wantedBy = [ "timers.target" ]; timerConfig = { OnBootSec = "2min"; OnUnitActiveSec = "5min"; Persistent = true; }; }; systemd.tmpfiles.rules = [ "d /var/lib/cloudflare-ddns 0750 root root -" ]; }