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

{
    environment = {
      systemPackages = with pkgs; [
         klipperscreen
      ];
    };

    services = {
      klipper = {
        enable = true;
	configFile = ./printer.cfg;
	firmwares."sovol06" = {
	  serial = "/dev/serial/by-id/usb-1a86_USB_Serial-if00-port0";
	  enableKlipperFlash = true;
	  enable = true;
	  configFile = ./firmware.conf;
	};
      };

      mainsail = {
        enable = true;
	nginx = {
	  enableACME = false;
	  #useACMEHost = "home.opel-online.de";
	  serverName = "nbf5.home.opel-online.de";
	  #onlySSL = true;
	  listenAddresses = [ "0.0.0.0" "::" ];
	  #forceSSL = true;
        };
      };

      moonraker = {
        enable = true;
	allowSystemControl = true;
      };

#      nginx = {
#        enable = true;
#        recommendedProxySettings = true;
#        recommendedTlsSettings = true;
#        recommendedGzipSettings = true;
#        recommendedOptimisation = true;
#        virtualHosts = {
#          "ci.kabtop.de" = {
#            enableACME = true;
#            forceSSL = true;
#            default = true;
#            locations."/".return = "503";
#          };
#          "hydra.ci.kabtop.de" = {
#            enableACME = true;
#            forceSSL = true;
#            locations."/" = {
#              proxyPass = "http://localhost:3000";
#              extraConfig = ''
#                proxy_set_header X-Forwarded-Port 443;
#              '';
#            };
#          };
#          "cache.ci.kabtop.de" = {
#            enableACME = true;
#            forceSSL = true;
#            locations."/".proxyPass = "http://${config.services.nix-serve.bindAddress}:${toString config.services.nix-serve.port}";
#          };
#        };
#      };
#    };
#
#    security.acme = {
#      acceptTerms = true;
#      defaults = {
#        email = "webmaster@kabtop.de";
#        webroot = "/var/lib/acme/acme-challenge";
#        #server = "https://acme-staging-v02.api.letsencrypt.org/directory";
#      };
    };
    
}