mirror of
https://github.com/inventree/InvenTree.git
synced 2025-04-27 19:16:44 +00:00
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 ...
|
|
}
|
|
}
|