{ admin off debug log { level DEBUG } } # 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 } } # Main site config (site) { @landing { path / /contact* /about* /favicon.png } handle /_app/* { reverse_proxy site:3000 } handle @landing { reverse_proxy site:3000 { health_uri /health health_interval 30s health_timeout 10s health_status 200 } } handle /repo* { uri strip_prefix /repo import repo_site } } :80 { import site } http://am-d-model.eu { import site } am-d-model.eu { import site }