forked from jan-leila/nix-config
		
	feat: refactored reverse proxy to be a normally named module
This commit is contained in:
		
							parent
							
								
									466926b919
								
							
						
					
					
						commit
						4dd285c122
					
				
					 29 changed files with 352 additions and 426 deletions
				
			
		|  | @ -82,7 +82,7 @@ | |||
|             login_attempts_threshold = 10; | ||||
|           }; | ||||
|           homeassistant = { | ||||
|             external_url = "https://${config.services.home-assistant.subdomain}.${config.host.reverse_proxy.hostname}"; | ||||
|             external_url = "https://${config.services.home-assistant.domain}"; | ||||
|             # internal_url = "http://192.168.1.2:8123"; | ||||
|           }; | ||||
|           recorder.db_url = "postgresql://@/${config.services.home-assistant.configDir}"; | ||||
|  |  | |||
|  | @ -4,29 +4,33 @@ | |||
|   ... | ||||
| }: { | ||||
|   options.services.home-assistant = { | ||||
|     subdomain = lib.mkOption { | ||||
|     domain = lib.mkOption { | ||||
|       type = lib.types.str; | ||||
|       description = "subdomain of base domain that home-assistant will be hosted at"; | ||||
|       default = "home-assistant"; | ||||
|       description = "domain that home-assistant will be hosted at"; | ||||
|       default = "home-assistant.arpa"; | ||||
|     }; | ||||
|     extraDomains = lib.mkOption { | ||||
|       type = lib.types.listOf lib.types.str; | ||||
|       description = "extra domains that should be configured for home-assistant"; | ||||
|       default = []; | ||||
|     }; | ||||
|   }; | ||||
| 
 | ||||
|   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}"; | ||||
|   config = lib.mkIf (config.services.reverseProxy.enable && config.services.home-assistant.enable) { | ||||
|     services.reverseProxy.services.home-assistant = { | ||||
|       target = "http://localhost:${toString config.services.home-assistant.config.http.server_port}"; | ||||
|       domain = config.services.home-assistant.domain; | ||||
|       extraDomains = config.services.home-assistant.extraDomains; | ||||
| 
 | ||||
|         websockets.enable = true; | ||||
|       settings = { | ||||
|         proxyWebsockets.enable = true; | ||||
|         forwardHeaders.enable = true; | ||||
| 
 | ||||
|         extraConfig = '' | ||||
|           add_header Upgrade $http_upgrade; | ||||
|           add_header Connection \"upgrade\"; | ||||
| 
 | ||||
|           proxy_buffering off; | ||||
| 
 | ||||
|           proxy_read_timeout 90; | ||||
|         ''; | ||||
|         # Custom timeout settings | ||||
|         proxyHeaders = { | ||||
|           enable = true; | ||||
|           timeout = 90; | ||||
|         }; | ||||
|       }; | ||||
|     }; | ||||
|   }; | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue