mirror of
				https://github.com/open-webui/open-webui
				synced 2025-06-26 18:26:48 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			65 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Caddyfile
		
	
	
	
	
	
			
		
		
	
	
			65 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Caddyfile
		
	
	
	
	
	
# Run with
 | 
						|
#    caddy run --envfile ./example.env --config ./Caddyfile.localhost
 | 
						|
#
 | 
						|
# This is configured for
 | 
						|
#    - Automatic HTTPS (even for localhost)
 | 
						|
#    - Reverse Proxying to Ollama API Base URL (http://localhost:11434/api)
 | 
						|
#    - CORS
 | 
						|
#    - HTTP Basic Auth API Tokens (uncomment basicauth section)
 | 
						|
 | 
						|
 | 
						|
# CORS Preflight (OPTIONS) + Request (GET, POST, PATCH, PUT, DELETE)
 | 
						|
(cors-api) {
 | 
						|
	@match-cors-api-preflight method OPTIONS
 | 
						|
	handle @match-cors-api-preflight {
 | 
						|
		header {
 | 
						|
			Access-Control-Allow-Origin "{http.request.header.origin}"
 | 
						|
			Access-Control-Allow-Methods "GET, POST, PUT, PATCH, DELETE, OPTIONS"
 | 
						|
			Access-Control-Allow-Headers "Origin, Accept, Authorization, Content-Type, X-Requested-With"
 | 
						|
			Access-Control-Allow-Credentials "true"
 | 
						|
			Access-Control-Max-Age "3600"
 | 
						|
			defer
 | 
						|
		}
 | 
						|
		respond "" 204
 | 
						|
	}
 | 
						|
 | 
						|
	@match-cors-api-request {
 | 
						|
		not {
 | 
						|
			header Origin "{http.request.scheme}://{http.request.host}"
 | 
						|
		}
 | 
						|
		header Origin "{http.request.header.origin}"
 | 
						|
	}
 | 
						|
	handle @match-cors-api-request {
 | 
						|
		header {
 | 
						|
			Access-Control-Allow-Origin "{http.request.header.origin}"
 | 
						|
			Access-Control-Allow-Methods "GET, POST, PUT, PATCH, DELETE, OPTIONS"
 | 
						|
			Access-Control-Allow-Headers "Origin, Accept, Authorization, Content-Type, X-Requested-With"
 | 
						|
			Access-Control-Allow-Credentials "true"
 | 
						|
			Access-Control-Max-Age "3600"
 | 
						|
			defer
 | 
						|
		}
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
# replace localhost with example.com or whatever
 | 
						|
localhost {
 | 
						|
	## HTTP Basic Auth
 | 
						|
	## (uncomment to enable)
 | 
						|
	# basicauth {
 | 
						|
	# 	# see .example.env for how to generate tokens
 | 
						|
	# 	{env.OLLAMA_API_ID} {env.OLLAMA_API_TOKEN_DIGEST}
 | 
						|
	# }
 | 
						|
 | 
						|
	handle /api/* {
 | 
						|
		# Comment to disable CORS
 | 
						|
		import cors-api
 | 
						|
 | 
						|
		reverse_proxy localhost:11434
 | 
						|
	}
 | 
						|
 | 
						|
	# Same-Origin Static Web Server
 | 
						|
	file_server {
 | 
						|
		root ./build/
 | 
						|
	}
 | 
						|
}
 |