forked from jan-leila/nix-config
		
	refactor: moved subdomain options into proxy file
This commit is contained in:
		
							parent
							
								
									dfdd6bcc82
								
							
						
					
					
						commit
						9b02e30080
					
				
					 16 changed files with 84 additions and 73 deletions
				
			
		|  | @ -12,14 +12,6 @@ in { | |||
|     ./impermanence.nix | ||||
|   ]; | ||||
| 
 | ||||
|   options.services.actual = { | ||||
|     subdomain = lib.mkOption { | ||||
|       type = lib.types.str; | ||||
|       default = "actual"; | ||||
|       description = "subdomain of base domain that actual will be hosted at"; | ||||
|     }; | ||||
|   }; | ||||
| 
 | ||||
|   config = lib.mkIf config.services.actual.enable { | ||||
|     systemd.tmpfiles.rules = [ | ||||
|       "d ${dataDirectory} 2770 actual actual" | ||||
|  |  | |||
|  | @ -3,6 +3,14 @@ | |||
|   config, | ||||
|   ... | ||||
| }: { | ||||
|   options.services.actual = { | ||||
|     subdomain = lib.mkOption { | ||||
|       type = lib.types.str; | ||||
|       default = "actual"; | ||||
|       description = "subdomain of base domain that actual will be hosted at"; | ||||
|     }; | ||||
|   }; | ||||
| 
 | ||||
|   config = lib.mkIf (config.services.actual.enable && config.host.reverse_proxy.enable) { | ||||
|     host = { | ||||
|       reverse_proxy.subdomains.${config.services.actual.subdomain} = { | ||||
|  |  | |||
|  | @ -15,14 +15,6 @@ in { | |||
|     ./impermanence.nix | ||||
|   ]; | ||||
| 
 | ||||
|   options.services.forgejo = { | ||||
|     subdomain = lib.mkOption { | ||||
|       type = lib.types.str; | ||||
|       description = "subdomain of base domain that forgejo will be hosted at"; | ||||
|       default = "forgejo"; | ||||
|     }; | ||||
|   }; | ||||
| 
 | ||||
|   config = lib.mkIf config.services.forgejo.enable { | ||||
|     assertions = [ | ||||
|       { | ||||
|  |  | |||
|  | @ -6,6 +6,14 @@ | |||
|   const = import ./const.nix; | ||||
|   httpPort = const.httpPort; | ||||
| in { | ||||
|   options.services.forgejo = { | ||||
|     subdomain = lib.mkOption { | ||||
|       type = lib.types.str; | ||||
|       description = "subdomain of base domain that forgejo will be hosted at"; | ||||
|       default = "forgejo"; | ||||
|     }; | ||||
|   }; | ||||
| 
 | ||||
|   config = lib.mkIf (config.services.forgejo.enable && config.host.reverse_proxy.enable) { | ||||
|     host.reverse_proxy.subdomains.${config.services.forgejo.subdomain} = { | ||||
|       target = "http://localhost:${toString httpPort}"; | ||||
|  |  | |||
|  | @ -12,12 +12,6 @@ | |||
|   ]; | ||||
| 
 | ||||
|   options.services.home-assistant = { | ||||
|     subdomain = lib.mkOption { | ||||
|       type = lib.types.str; | ||||
|       description = "subdomain of base domain that home-assistant will be hosted at"; | ||||
|       default = "home-assistant"; | ||||
|     }; | ||||
| 
 | ||||
|     database = lib.mkOption { | ||||
|       type = lib.types.enum [ | ||||
|         "builtin" | ||||
|  |  | |||
|  | @ -2,23 +2,32 @@ | |||
|   lib, | ||||
|   config, | ||||
|   ... | ||||
| }: | ||||
| lib.mkIf (config.host.reverse_proxy.enable && config.services.home-assistant.enable) { | ||||
|   host = { | ||||
|     reverse_proxy.subdomains.${config.services.home-assistant.subdomain} = { | ||||
|       target = "http://localhost:${toString config.services.home-assistant.config.http.server_port}"; | ||||
| }: { | ||||
|   options.services.home-assistant = { | ||||
|     subdomain = lib.mkOption { | ||||
|       type = lib.types.str; | ||||
|       description = "subdomain of base domain that home-assistant will be hosted at"; | ||||
|       default = "home-assistant"; | ||||
|     }; | ||||
|   }; | ||||
| 
 | ||||
|       websockets.enable = true; | ||||
|       forwardHeaders.enable = true; | ||||
|   config = lib.mkIf (config.host.reverse_proxy.enable && config.services.home-assistant.enable) { | ||||
|     host = { | ||||
|       reverse_proxy.subdomains.${config.services.home-assistant.subdomain} = { | ||||
|         target = "http://localhost:${toString config.services.home-assistant.config.http.server_port}"; | ||||
| 
 | ||||
|       extraConfig = '' | ||||
|         add_header Upgrade $http_upgrade; | ||||
|         add_header Connection \"upgrade\"; | ||||
|         websockets.enable = true; | ||||
|         forwardHeaders.enable = true; | ||||
| 
 | ||||
|         proxy_buffering off; | ||||
|         extraConfig = '' | ||||
|           add_header Upgrade $http_upgrade; | ||||
|           add_header Connection \"upgrade\"; | ||||
| 
 | ||||
|         proxy_read_timeout 90; | ||||
|       ''; | ||||
|           proxy_buffering off; | ||||
| 
 | ||||
|           proxy_read_timeout 90; | ||||
|         ''; | ||||
|       }; | ||||
|     }; | ||||
|   }; | ||||
| } | ||||
|  |  | |||
|  | @ -1,4 +1,4 @@ | |||
| {lib, ...}: { | ||||
| {...}: { | ||||
|   imports = [ | ||||
|     ./proxy.nix | ||||
|     ./database.nix | ||||
|  | @ -6,14 +6,6 @@ | |||
|     ./impermanence.nix | ||||
|   ]; | ||||
| 
 | ||||
|   options.services.immich = { | ||||
|     subdomain = lib.mkOption { | ||||
|       type = lib.types.str; | ||||
|       description = "subdomain of base domain that immich will be hosted at"; | ||||
|       default = "immich"; | ||||
|     }; | ||||
|   }; | ||||
| 
 | ||||
|   # NOTE: This shouldn't be needed now that we are out of testing | ||||
|   # config = lib.mkIf config.services.immich.enable { | ||||
|   #   networking.firewall.interfaces.${config.services.tailscale.interfaceName} = { | ||||
|  |  | |||
|  | @ -3,6 +3,14 @@ | |||
|   config, | ||||
|   ... | ||||
| }: { | ||||
|   options.services.immich = { | ||||
|     subdomain = lib.mkOption { | ||||
|       type = lib.types.str; | ||||
|       description = "subdomain of base domain that immich will be hosted at"; | ||||
|       default = "immich"; | ||||
|     }; | ||||
|   }; | ||||
| 
 | ||||
|   config = lib.mkIf (config.services.immich.enable && config.host.reverse_proxy.enable) { | ||||
|     host = { | ||||
|       reverse_proxy.subdomains.${config.services.immich.subdomain} = { | ||||
|  |  | |||
|  | @ -14,16 +14,6 @@ in { | |||
|   ]; | ||||
| 
 | ||||
|   options.services.jellyfin = { | ||||
|     subdomain = lib.mkOption { | ||||
|       type = lib.types.str; | ||||
|       description = "subdomain of base domain that jellyfin will be hosted at"; | ||||
|       default = "jellyfin"; | ||||
|     }; | ||||
|     extraSubdomains = lib.mkOption { | ||||
|       type = lib.types.listOf lib.types.str; | ||||
|       description = "ex subdomain of base domain that jellyfin will be hosted at"; | ||||
|       default = []; | ||||
|     }; | ||||
|     media_directory = lib.mkOption { | ||||
|       type = lib.types.str; | ||||
|       description = "directory jellyfin media will be hosted at"; | ||||
|  |  | |||
|  | @ -5,6 +5,19 @@ | |||
| }: let | ||||
|   jellyfinPort = 8096; | ||||
| in { | ||||
|   options.services.jellyfin = { | ||||
|     subdomain = lib.mkOption { | ||||
|       type = lib.types.str; | ||||
|       description = "subdomain of base domain that jellyfin will be hosted at"; | ||||
|       default = "jellyfin"; | ||||
|     }; | ||||
|     extraSubdomains = lib.mkOption { | ||||
|       type = lib.types.listOf lib.types.str; | ||||
|       description = "ex subdomain of base domain that jellyfin will be hosted at"; | ||||
|       default = []; | ||||
|     }; | ||||
|   }; | ||||
| 
 | ||||
|   config = lib.mkIf (config.services.jellyfin.enable && config.host.reverse_proxy.enable) { | ||||
|     host.reverse_proxy.subdomains.jellyfin = { | ||||
|       target = "http://localhost:${toString jellyfinPort}"; | ||||
|  |  | |||
|  | @ -57,12 +57,6 @@ in { | |||
|       description = "The panoramax package to use"; | ||||
|     }; | ||||
| 
 | ||||
|     subdomain = lib.mkOption { | ||||
|       type = lib.types.str; | ||||
|       description = "subdomain of base domain that panoramax will be hosted at"; | ||||
|       default = "panoramax"; | ||||
|     }; | ||||
| 
 | ||||
|     database = { | ||||
|       createDB = mkOption { | ||||
|         type = types.bool; | ||||
|  |  | |||
|  | @ -3,6 +3,14 @@ | |||
|   config, | ||||
|   ... | ||||
| }: { | ||||
|   options.services.panoramax = { | ||||
|     subdomain = lib.mkOption { | ||||
|       type = lib.types.str; | ||||
|       description = "subdomain of base domain that panoramax will be hosted at"; | ||||
|       default = "panoramax"; | ||||
|     }; | ||||
|   }; | ||||
| 
 | ||||
|   config = lib.mkIf (config.services.panoramax.enable && config.host.reverse_proxy.enable) { | ||||
|     host = { | ||||
|       reverse_proxy.subdomains.${config.services.panoramax.subdomain} = { | ||||
|  |  | |||
|  | @ -11,11 +11,6 @@ | |||
|   ]; | ||||
| 
 | ||||
|   options.services.paperless = { | ||||
|     subdomain = lib.mkOption { | ||||
|       type = lib.types.str; | ||||
|       description = "subdomain of base domain that paperless will be hosted at"; | ||||
|       default = "paperless"; | ||||
|     }; | ||||
|     database = { | ||||
|       user = lib.mkOption { | ||||
|         type = lib.types.str; | ||||
|  |  | |||
|  | @ -3,6 +3,14 @@ | |||
|   lib, | ||||
|   ... | ||||
| }: { | ||||
|   options.services.paperless = { | ||||
|     subdomain = lib.mkOption { | ||||
|       type = lib.types.str; | ||||
|       description = "subdomain of base domain that paperless will be hosted at"; | ||||
|       default = "paperless"; | ||||
|     }; | ||||
|   }; | ||||
| 
 | ||||
|   config = lib.mkIf (config.services.paperless.enable && config.host.reverse_proxy.enable) { | ||||
|     host = { | ||||
|       reverse_proxy.subdomains.${config.services.paperless.subdomain} = { | ||||
|  |  | |||
|  | @ -8,14 +8,6 @@ | |||
|     ./proxy.nix | ||||
|   ]; | ||||
| 
 | ||||
|   options.services.searx = { | ||||
|     subdomain = lib.mkOption { | ||||
|       type = lib.types.str; | ||||
|       description = "subdomain of base domain that searx will be hosted at"; | ||||
|       default = "searx"; | ||||
|     }; | ||||
|   }; | ||||
| 
 | ||||
|   config = lib.mkIf config.services.searx.enable { | ||||
|     sops.secrets = { | ||||
|       "services/searx" = { | ||||
|  |  | |||
|  | @ -3,6 +3,14 @@ | |||
|   lib, | ||||
|   ... | ||||
| }: { | ||||
|   options.services.searx = { | ||||
|     subdomain = lib.mkOption { | ||||
|       type = lib.types.str; | ||||
|       description = "subdomain of base domain that searx will be hosted at"; | ||||
|       default = "searx"; | ||||
|     }; | ||||
|   }; | ||||
| 
 | ||||
|   config = lib.mkIf (config.services.searx.enable && config.host.reverse_proxy.enable) { | ||||
|     host = { | ||||
|       reverse_proxy.subdomains.searx = { | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue