Spaces:
Paused
Paused
| # 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/ | |
| } | |
| } | |