{ flake, config, pkgs, lib, ... }: with lib; let psCfg = config.pub-solar; in { services.avahi.enable = true; services.avahi.ipv6 = true; services.avahi.nssmdns = true; services.avahi.publish.enable = true; services.avahi.publish.userServices = true; services.printing.enable = true; services.printing.browsing = true; services.printing.listenAddresses = ["localhost:631"]; services.printing.defaultShared = lib.mkDefault false; services.printing.drivers = [ pkgs.gutenprint ] ++ (if (pkgs.system == "x86_64-linux") then [ pkgs.cups-brother-hl3140cw ] else []); users.users."${psCfg.user.name}" = { extraGroups = ["lp" "scanner"]; }; networking.hosts = flake.self.lib.addLocalHostname ["cups.local"]; services.caddy = { enable = true; extraConfig = '' cups.local { request_header Host localhost:631 reverse_proxy unix//run/cups/cups.sock } ''; }; }