Newer
Older
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)
}