From a33e329cbd7ff0dada4cfabf2ed0d95851cfe728 Mon Sep 17 00:00:00 2001 From: Cian Hughes Date: Thu, 30 Jan 2025 13:47:33 +0000 Subject: [PATCH] Test of monolithic caddyfile --- caddy/Caddyfile | 72 ++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 71 insertions(+), 1 deletion(-) diff --git a/caddy/Caddyfile b/caddy/Caddyfile index d9f6cd3..4f74ce1 100644 --- a/caddy/Caddyfile +++ b/caddy/Caddyfile @@ -1,4 +1,4 @@ -import repo.caddyfile { +{ admin off debug log { @@ -38,3 +38,73 @@ http://am-d-model.eu { am-d-model.eu { import site } + +# Repo config +(repo_cors) { + header { + Access-Control-Allow-Origin * + Access-Control-Allow-Methods "GET, POST, PUT, PATCH, DELETE, OPTIONS" + Access-Control-Allow-Headers "*" + Access-Control-Allow-Credentials true + Strict-Transport-Security "max-age=15768000" + # Request ID tracing + +X-Request-ID {uuid} + } +} + +(repo_common_proxy) { + # Set headers similar to uwsgi_param + header_up Host {host} + header_up X-Request-ID {uuid} + # Remove sensitive headers + header_down -X-Session-ID + header_down -X-User-ID +} + +(repo_site) { + import repo_cors + + # UI Server routes + handle / { + request_body { + max_size 100MB + } + reverse_proxy / repo-web-ui:5000 { + transport uwsgi + import repo_common_proxy + } + } + + # API routes + handle /api/* { + request_body { + max_size 100MB + } + reverse_proxy / repo-web-api:5000 { + transport uwsgi + import repo_common_proxy + } + } + + # Large file upload API routes + handle_path /api/records/*/draft/files/*/content { + request_body { + max_size 250GB + } + encode gzip + reverse_proxy / repo-web-api:5000 { + transport uwsgi + import repo_common_proxy + } + } + + handle /static/* { + root * /opt/invenio/var/instance/static + file_server + } + + handle /robots.txt { + root * /opt/invenio/var/instance/static + file_server + } +}