chore: remove old web-proxy code
This is no longer used in our infra, and probably should never have been in this repo anyway Closes: PluralKit/PluralKit#511
This commit is contained in:
		
							
								
								
									
										19
									
								
								.github/workflows/fly.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										19
									
								
								.github/workflows/fly.yml
									
									
									
									
										vendored
									
									
								
							| @@ -1,19 +0,0 @@ | |||||||
| name: Deploy web proxy to Fly.io |  | ||||||
|  |  | ||||||
| on: |  | ||||||
|   push: |  | ||||||
|     branches: [main] |  | ||||||
|     paths: |  | ||||||
|       - 'services/web-proxy/**' |  | ||||||
|  |  | ||||||
| env: |  | ||||||
|   FLY_API_TOKEN: ${{ secrets.FLY_API_TOKEN }} |  | ||||||
|  |  | ||||||
| jobs: |  | ||||||
|   deploy: |  | ||||||
|       name: Deploy app |  | ||||||
|       runs-on: ubuntu-latest |  | ||||||
|       steps: |  | ||||||
|         - uses: actions/checkout@v2 |  | ||||||
|         - uses: superfly/flyctl-actions/setup-flyctl@master |  | ||||||
|         - run: (cd services/web-proxy && flyctl deploy) |  | ||||||
| @@ -1,14 +0,0 @@ | |||||||
| FROM alpine:latest as builder |  | ||||||
|  |  | ||||||
| RUN apk add go |  | ||||||
|  |  | ||||||
| WORKDIR /build |  | ||||||
| COPY . /build/ |  | ||||||
|  |  | ||||||
| RUN go build . |  | ||||||
|  |  | ||||||
| FROM alpine:latest |  | ||||||
|  |  | ||||||
| COPY --from=builder /build/web-proxy /bin/web-proxy |  | ||||||
|  |  | ||||||
| ENTRYPOINT [ "/bin/web-proxy" ] |  | ||||||
| @@ -1,28 +0,0 @@ | |||||||
| app = "pluralkit" |  | ||||||
| kill_signal = "SIGTERM" |  | ||||||
| kill_timeout = 5 |  | ||||||
|  |  | ||||||
| [metrics] |  | ||||||
|   port = 9091 |  | ||||||
|   path = "/metrics" |  | ||||||
|  |  | ||||||
| [deploy] |  | ||||||
|   strategy = "bluegreen" |  | ||||||
|  |  | ||||||
| [[services]] |  | ||||||
|   internal_port = 8080 |  | ||||||
|   protocol = "tcp" |  | ||||||
|  |  | ||||||
|   [services.concurrency] |  | ||||||
|     hard_limit = 500 |  | ||||||
|     soft_limit = 400 |  | ||||||
|     type = "connections" |  | ||||||
|  |  | ||||||
|   [[services.ports]] |  | ||||||
|     force_https = true |  | ||||||
|     handlers = ["http"] |  | ||||||
|     port = 80 |  | ||||||
|  |  | ||||||
|   [[services.ports]] |  | ||||||
|     handlers = ["tls", "http"] |  | ||||||
|     port = 443 |  | ||||||
| @@ -1,3 +0,0 @@ | |||||||
| module web-proxy |  | ||||||
|  |  | ||||||
| go 1.19 |  | ||||||
| @@ -1,63 +0,0 @@ | |||||||
| package main |  | ||||||
|  |  | ||||||
| import ( |  | ||||||
| 	"context" |  | ||||||
| 	"log" |  | ||||||
| 	"net/http" |  | ||||||
| 	"net/http/httputil" |  | ||||||
| 	"net/url" |  | ||||||
| 	"time" |  | ||||||
| ) |  | ||||||
|  |  | ||||||
| func proxyTo(host string) *httputil.ReverseProxy { |  | ||||||
| 	rp := httputil.NewSingleHostReverseProxy(&url.URL{ |  | ||||||
| 		Scheme:   "http", |  | ||||||
| 		Host:     host, |  | ||||||
| 		RawQuery: "", |  | ||||||
| 	}) |  | ||||||
| 	rp.ModifyResponse = logTimeElapsed |  | ||||||
| 	return rp |  | ||||||
| } |  | ||||||
|  |  | ||||||
| // todo: this shouldn't be in this repo |  | ||||||
| var remotes = map[string]*httputil.ReverseProxy{ |  | ||||||
| 	"api.pluralkit.me":     proxyTo("pluralkit-api.flycast:5000"), |  | ||||||
| 	"dash.pluralkit.me":    proxyTo("pluralkit-compute02._peer.internal:8080"), |  | ||||||
| 	"sentry.pluralkit.me":  proxyTo("pluralkit-compute02._peer.internal:9000"), |  | ||||||
| 	"grafana.pluralkit.me": proxyTo("pluralkit-db1._peer.internal:3000"), |  | ||||||
| } |  | ||||||
|  |  | ||||||
| type ProxyHandler struct{} |  | ||||||
|  |  | ||||||
| func (p ProxyHandler) ServeHTTP(rw http.ResponseWriter, r *http.Request) { |  | ||||||
| 	remote, ok := remotes[r.Host] |  | ||||||
| 	if !ok { |  | ||||||
| 		// unknown domains redirect to landing page |  | ||||||
| 		http.Redirect(rw, r, "https://pluralkit.me", http.StatusFound) |  | ||||||
| 		return |  | ||||||
| 	} |  | ||||||
|  |  | ||||||
| 	r.Header.Del("X-PluralKit-Client-IP") |  | ||||||
| 	r.Header.Set("X-PluralKit-Client-IP", r.Header.Get("Fly-Client-IP")) |  | ||||||
|  |  | ||||||
| 	startTime := time.Now() |  | ||||||
| 	r = r.WithContext(context.WithValue(r.Context(), "req-time", startTime)) |  | ||||||
|  |  | ||||||
| 	remote.ServeHTTP(rw, r) |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func logTimeElapsed(resp *http.Response) error { |  | ||||||
| 	r := resp.Request |  | ||||||
|  |  | ||||||
| 	startTime := r.Context().Value("req-time").(time.Time) |  | ||||||
|  |  | ||||||
| 	elapsed := time.Since(startTime) |  | ||||||
|  |  | ||||||
| 	log.Printf("[%s] \"%s %s%s\" %d - %vms %s\n", r.Header.Get("Fly-Client-IP"), r.Method, r.Host, r.URL.Path, resp.StatusCode, elapsed.Milliseconds(), r.Header.Get("User-Agent")) |  | ||||||
|  |  | ||||||
| 	return nil |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func main() { |  | ||||||
| 	http.ListenAndServe(":8080", ProxyHandler{}) |  | ||||||
| } |  | ||||||
		Reference in New Issue
	
	Block a user