package main import ( "encoding/base64" "flag" "net/http" "net/http/httputil" "net/url" ) var ( addr = flag.String("addr", "127.0.0.1:11434", "address to listen on") token = flag.String("token", "", "bearer token for authentication") target = flag.String("target", "https://ollama.ula.inventati.org", "target hostname") ) func main() { flag.Parse() authHdr := "Bearer " + base64.StdEncoding.EncodeToString([]byte(*token)) targetURI, _ := url.Parse(*target) proxy := &httputil.ReverseProxy{ Rewrite: func(req *httputil.ProxyRequest) { req.SetURL(targetURI) req.Out.Header.Set("Authorization", authHdr) }, } http.ListenAndServe(*addr, proxy) }