mirror of
				https://github.com/inventree/InvenTree.git
				synced 2025-10-31 21:25:42 +00:00 
			
		
		
		
	(cherry picked from commit decccf8163)
Co-authored-by: Oliver <oliver.henry.walters@gmail.com>
		
	
		
			
				
	
	
		
			78 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Caddyfile
		
	
	
	
	
	
			
		
		
	
	
			78 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Caddyfile
		
	
	
	
	
	
| # Example Caddyfile for InvenTree
 | |
| # The following environment variables may be used:
 | |
| # - INVENTREE_SITE_URL: The upstream URL of the InvenTree site (default: inventree.localhost)
 | |
| # - INVENTREE_SERVER: The internal URL of the InvenTree container (default: http://inventree-server:8000)
 | |
| #
 | |
| # Note that while this file is a good starting point, it may need to be modified to suit your specific requirements
 | |
| #
 | |
| # Ref to the Caddyfile documentation: https://caddyserver.com/docs/caddyfile
 | |
| 
 | |
| 
 | |
| # Logging configuration for Caddy
 | |
| (log_common) {
 | |
| 	log {
 | |
| 		output file /var/log/caddy/{args[0]}.access.log
 | |
| 	}
 | |
| }
 | |
| 
 | |
| # CORS headers control (used for static and media files)
 | |
| (cors-headers) {
 | |
| 	header Allow GET,HEAD,OPTIONS
 | |
| 	header Access-Control-Allow-Origin *
 | |
| 	header Access-Control-Allow-Methods GET,HEAD,OPTIONS
 | |
| 	header Access-Control-Allow-Headers Authorization,Content-Type,User-Agent
 | |
| 
 | |
| 	@cors_preflight{args[0]} method OPTIONS
 | |
| 
 | |
| 	handle @cors_preflight{args[0]} {
 | |
| 		respond "" 204
 | |
| 	}
 | |
| }
 | |
| 
 | |
| # The default server address is configured in the .env file
 | |
| # If not specified, the default address is used - http://inventree.localhost
 | |
| # If you need to listen on multiple addresses, or use a different port, you can modify this section directly
 | |
| {$INVENTREE_SITE_URL:http://inventree.localhost} {
 | |
| 	import log_common inventree
 | |
| 
 | |
| 	encode gzip
 | |
| 
 | |
| 	request_body {
 | |
| 		max_size 100MB
 | |
| 	}
 | |
| 
 | |
| 	# Handle static request files
 | |
| 	handle_path /static/* {
 | |
| 		import cors-headers static
 | |
| 
 | |
| 		root * /var/www/static
 | |
| 		file_server
 | |
| 	}
 | |
| 
 | |
| 	# Handle media request files
 | |
| 	handle_path /media/* {
 | |
| 		import cors-headers media
 | |
| 
 | |
| 		root * /var/www/media
 | |
| 		file_server
 | |
| 
 | |
| 		# Force download of media files (for security)
 | |
| 		# Comment out this line if you do not want to force download
 | |
| 		header Content-Disposition attachment
 | |
| 
 | |
| 		# Authentication is handled by the forward_auth directive
 | |
| 		# This is required to ensure that media files are only accessible to authenticated users
 | |
| 		forward_auth {$INVENTREE_SERVER:"http://inventree-server:8000"} {
 | |
| 			uri /auth/
 | |
| 		}
 | |
| 	}
 | |
| 
 | |
| 	# All other requests are proxied to the InvenTree server
 | |
| 	reverse_proxy {$INVENTREE_SERVER:"http://inventree-server:8000"} {
 | |
| 
 | |
| 		# If you are running behind another proxy, you may need to specify 'trusted_proxies'
 | |
| 		# Ref: https://caddyserver.com/docs/json/apps/http/servers/trusted_proxies/
 | |
| 		# trusted_proxies ...
 | |
| 	}
 | |
| }
 |