diff --git a/cmd/h2c_test_server/Dockerfile b/cmd/h2c_test_server/Dockerfile new file mode 100644 index 00000000..2cc2e4e1 --- /dev/null +++ b/cmd/h2c_test_server/Dockerfile @@ -0,0 +1,18 @@ +FROM golang:1.25.5-alpine AS builder + +HEALTHCHECK NONE + +WORKDIR /src + +COPY go.mod go.sum ./ +COPY main.go ./ + +RUN go build -o h2c_test_server main.go + +FROM scratch + +COPY --from=builder /src/h2c_test_server /app/run + +USER 1001:1001 + +CMD ["/app/run"] \ No newline at end of file diff --git a/cmd/h2c_test_server/go.mod b/cmd/h2c_test_server/go.mod new file mode 100644 index 00000000..ea308c6d --- /dev/null +++ b/cmd/h2c_test_server/go.mod @@ -0,0 +1,7 @@ +module github.com/yusing/godoxy/cmd/h2c_test_server + +go 1.25.5 + +require golang.org/x/net v0.48.0 + +require golang.org/x/text v0.32.0 // indirect \ No newline at end of file diff --git a/cmd/h2c_test_server/go.sum b/cmd/h2c_test_server/go.sum new file mode 100644 index 00000000..e87ebd9a --- /dev/null +++ b/cmd/h2c_test_server/go.sum @@ -0,0 +1,4 @@ +golang.org/x/net v0.48.0 h1:zyQRTTrjc33Lhh0fBgT/H3oZq9WuvRR5gPC70xpDiQU= +golang.org/x/net v0.48.0/go.mod h1:+ndRgGjkh8FGtu1w1FGbEC31if4VrNVMuKTgcAAnQRY= +golang.org/x/text v0.32.0 h1:ZD01bjUt1FQ9WJ0ClOL5vxgxOI/sVCNgX1YtKwcY0mU= +golang.org/x/text v0.32.0/go.mod h1:o/rUWzghvpD5TXrTIBuJU77MTaN0ljMWE47kxGJQ7jY= diff --git a/cmd/h2c_test_server/main.go b/cmd/h2c_test_server/main.go new file mode 100644 index 00000000..b49011fe --- /dev/null +++ b/cmd/h2c_test_server/main.go @@ -0,0 +1,26 @@ +package main + +import ( + "log" + "net/http" + + "golang.org/x/net/http2" + "golang.org/x/net/http2/h2c" +) + +func main() { + handler := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + w.WriteHeader(http.StatusOK) + w.Write([]byte("ok")) + }) + + server := &http.Server{ + Addr: ":80", + Handler: h2c.NewHandler(handler, &http2.Server{}), + } + + log.Println("H2C server listening on :8080") + if err := server.ListenAndServe(); err != nil && err != http.ErrServerClosed { + log.Fatalf("ListenAndServe: %v", err) + } +} diff --git a/dev.compose.yml b/dev.compose.yml index bb964921..5d8927fd 100644 --- a/dev.compose.yml +++ b/dev.compose.yml @@ -54,6 +54,15 @@ services: - USERS=user:$$2a$$10$$UdLYoJ5lgPsC0RKqYH/jMua7zIn0g9kPqWmhYayJYLaZQ/FTmH2/u # user:password labels: proxy.tinyauth.port: "3000" + h2c_test_server: + build: + context: cmd/h2c_test_server + dockerfile: Dockerfile + container_name: h2c_test + restart: unless-stopped + labels: + proxy.#1.scheme: h2c + proxy.#1.port: 80 configs: parca: content: |