60 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			60 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
topLevel: {
 | 
						|
  flake.modules.nixos.server =
 | 
						|
    {
 | 
						|
      config,
 | 
						|
      lib,
 | 
						|
      ...
 | 
						|
    }:
 | 
						|
    let
 | 
						|
      sopsFile = ../../secrets/secrets-loptland.yaml;
 | 
						|
      domainname = "christophhollizeck.dev";
 | 
						|
    in
 | 
						|
    {
 | 
						|
      sops = {
 | 
						|
        secrets = {
 | 
						|
          "netcup/customer_number" = {
 | 
						|
            inherit sopsFile;
 | 
						|
          };
 | 
						|
 | 
						|
          "netcup/api/key" = {
 | 
						|
            inherit sopsFile;
 | 
						|
          };
 | 
						|
 | 
						|
          "netcup/api/password" = {
 | 
						|
            inherit sopsFile;
 | 
						|
          };
 | 
						|
        };
 | 
						|
 | 
						|
        templates = {
 | 
						|
          "netcup.env" = {
 | 
						|
            content = ''
 | 
						|
              NETCUP_CUSTOMER_NUMBER=${config.sops.placeholder."netcup/customer_number"}
 | 
						|
              NETCUP_API_KEY=${config.sops.placeholder."netcup/api/key"}
 | 
						|
              NETCUP_API_PASSWORD=${config.sops.placeholder."netcup/api/password"}
 | 
						|
              NETCUP_PROPAGATION_TIMEOUT=1200
 | 
						|
            '';
 | 
						|
          };
 | 
						|
        };
 | 
						|
 | 
						|
      };
 | 
						|
 | 
						|
      security.acme = {
 | 
						|
        acceptTerms = true;
 | 
						|
        defaults = {
 | 
						|
          inherit (topLevel.config.flake.meta.users.cholli) email;
 | 
						|
 | 
						|
          group = lib.mkIf config.services.nginx.enable "nginx";
 | 
						|
          reloadServices = lib.mkIf config.services.nginx.enable "nginx.service";
 | 
						|
 | 
						|
          dnsProvider = "netcup";
 | 
						|
          environmentFile = config.sops.templates."netcup.env".path;
 | 
						|
        };
 | 
						|
 | 
						|
        certs."${domainname}" = {
 | 
						|
          dnsResolver = "1.1.1.1:53";
 | 
						|
          extraDomainNames = [ "*.${domainname}" ];
 | 
						|
        };
 | 
						|
      };
 | 
						|
 | 
						|
    };
 | 
						|
}
 |