Merge pull request #5 from lordmathis/fix/llama-server-cors

Remove llama server cors headers
This commit is contained in:
2025-07-28 22:10:05 +02:00
committed by GitHub

View File

@@ -6,6 +6,7 @@ import (
"fmt" "fmt"
"io" "io"
"log" "log"
"net/http"
"net/http/httputil" "net/http/httputil"
"net/url" "net/url"
"os/exec" "os/exec"
@@ -191,7 +192,10 @@ func (i *Instance) GetProxy() (*httputil.ReverseProxy, error) {
i.mu.Lock() i.mu.Lock()
defer i.mu.Unlock() defer i.mu.Unlock()
if i.proxy == nil { if i.proxy != nil {
return i.proxy, nil
}
if i.options == nil { if i.options == nil {
return nil, fmt.Errorf("instance %s has no options set", i.Name) return nil, fmt.Errorf("instance %s has no options set", i.Name)
} }
@@ -201,9 +205,22 @@ func (i *Instance) GetProxy() (*httputil.ReverseProxy, error) {
return nil, fmt.Errorf("failed to parse target URL for instance %s: %w", i.Name, err) return nil, fmt.Errorf("failed to parse target URL for instance %s: %w", i.Name, err)
} }
i.proxy = httputil.NewSingleHostReverseProxy(targetURL) proxy := httputil.NewSingleHostReverseProxy(targetURL)
proxy.ModifyResponse = func(resp *http.Response) error {
// Remove CORS headers from llama-server response to avoid conflicts
// llamactl will add its own CORS headers
resp.Header.Del("Access-Control-Allow-Origin")
resp.Header.Del("Access-Control-Allow-Methods")
resp.Header.Del("Access-Control-Allow-Headers")
resp.Header.Del("Access-Control-Allow-Credentials")
resp.Header.Del("Access-Control-Max-Age")
resp.Header.Del("Access-Control-Expose-Headers")
return nil
} }
i.proxy = proxy
return i.proxy, nil return i.proxy, nil
} }