{ flake, config, pkgs, lib, ... }: let psCfg = config.pub-solar; in { services.avahi.enable = true; services.avahi.ipv6 = true; services.avahi.nssmdns4 = true; services.avahi.publish.enable = true; services.avahi.publish.userServices = true; services.printing.enable = true; services.printing.browsing = true; services.printing.browsed.enable = true; services.printing.listenAddresses = [ "localhost:631" ]; services.printing.defaultShared = lib.mkDefault false; services.printing.drivers = [ pkgs.gutenprint pkgs.brlaser ]; hardware.sane = { enable = true; brscan5.enable = true; }; users.users."${psCfg.user.name}" = { extraGroups = [ "lp" "scanner" ]; }; networking.hosts = flake.self.lib.addLocalHostname [ "cups.local" ]; # Allow port 8612, used by sane-pixma(5) for scanner detection networking.firewall.allowedTCPPorts = [ 8612 ]; services.caddy = { enable = true; extraConfig = '' cups.local { request_header Host localhost:631 reverse_proxy unix//run/cups/cups.sock } ''; }; }