forked from Drift/pvv-nixos-config
		
	
		
			
				
	
	
		
			56 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
| {
 | |
|   config,
 | |
|   inputs,
 | |
|   lib,
 | |
|   pkgs,
 | |
|   values,
 | |
|   ...
 | |
| }:
 | |
| let
 | |
|   data = lib.flip lib.mapAttrs inputs (
 | |
|     name: input: {
 | |
|       inherit (input)
 | |
|         lastModified
 | |
|         ;
 | |
|     }
 | |
|   );
 | |
|   folder = pkgs.writeTextDir "share/flake-inputs" (
 | |
|     lib.concatMapStringsSep "\n" (
 | |
|       { name, value }: ''nixos_last_modified_input{flake="${name}"} ${toString value.lastModified}''
 | |
|     ) (lib.attrsToList data)
 | |
|   );
 | |
|   port = 9102;
 | |
| in
 | |
| {
 | |
|   services.nginx.virtualHosts."${config.networking.fqdn}-nixos-metrics" = {
 | |
|     serverName = config.networking.fqdn;
 | |
|     serverAliases = [
 | |
|       "${config.networking.hostName}.pvv.org"
 | |
|     ];
 | |
|     locations."/metrics" = {
 | |
|       root = "${folder}/share";
 | |
|       tryFiles = "/flake-inputs =404";
 | |
|       extraConfig = ''
 | |
|         default_type text/plain;
 | |
|       '';
 | |
|     };
 | |
|     listen = [
 | |
|       {
 | |
|         inherit port;
 | |
|         addr = "0.0.0.0";
 | |
|       }
 | |
|     ];
 | |
|     extraConfig = ''
 | |
|       allow ${values.hosts.ildkule.ipv4}/32;
 | |
|       allow ${values.hosts.ildkule.ipv6}/128;
 | |
|       allow 127.0.0.1/32;
 | |
|       allow ::1/128;
 | |
|       allow 129.241.210.128/25;
 | |
|       allow 2001:700:300:1900::/64;
 | |
|       deny all;
 | |
|     '';
 | |
|   };
 | |
| 
 | |
|   networking.firewall.allowedTCPPorts = [ port ];
 | |
| }
 |