{ config, pkgs, lib, ... }:

  let password = builtins.readFile /var/lib/ddclient/token;

  in
{

  environment.systemPackages = with pkgs; [
    ddclient
  ];

  # Dynamic DNS configuration
  services.ddclient = {
    enable = true;
    quiet = true;
    protocol = "duckdns";
    domains = [ "coolneng.duckdns.org" ];
    inherit password;
  };

  # Firewall configuration
  networking.firewall = {
    allowedTCPPorts = [
      631 # Cups
      6566 # SANE
      80
      443
    ];
    autoLoadConntrackHelpers = true;
    connectionTrackingModules = [ "sane" ];
  };

}