Compare commits
3 Commits
proxy_v2_i
...
v0.0.21
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3918cf39ac | ||
|
|
92b5233257 | ||
|
|
a849603d8b |
@@ -7,7 +7,7 @@ COPY . .
|
|||||||
|
|
||||||
RUN go mod download
|
RUN go mod download
|
||||||
|
|
||||||
RUN make build
|
RUN CGO_ENABLED=0 GOOS=linux go build -o ladder cmd/main.go
|
||||||
|
|
||||||
FROM debian:12-slim as release
|
FROM debian:12-slim as release
|
||||||
|
|
||||||
@@ -18,4 +18,8 @@ RUN chmod +x /app/ladder
|
|||||||
|
|
||||||
RUN apt update && apt install -y ca-certificates && rm -rf /var/lib/apt/lists/*
|
RUN apt update && apt install -y ca-certificates && rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
#EXPOSE 8080
|
||||||
|
|
||||||
|
#ENTRYPOINT ["/usr/bin/dumb-init", "--"]
|
||||||
|
|
||||||
CMD ["sh", "-c", "/app/ladder"]
|
CMD ["sh", "-c", "/app/ladder"]
|
||||||
@@ -3,7 +3,7 @@ services:
|
|||||||
ladder:
|
ladder:
|
||||||
image: ghcr.io/everywall/ladder:latest
|
image: ghcr.io/everywall/ladder:latest
|
||||||
container_name: ladder
|
container_name: ladder
|
||||||
build: .
|
#build: .
|
||||||
#restart: always
|
#restart: always
|
||||||
#command: sh -c ./ladder
|
#command: sh -c ./ladder
|
||||||
environment:
|
environment:
|
||||||
|
|||||||
@@ -8,7 +8,9 @@ import (
|
|||||||
"net/url"
|
"net/url"
|
||||||
"os"
|
"os"
|
||||||
"regexp"
|
"regexp"
|
||||||
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
|
"time"
|
||||||
|
|
||||||
"ladder/pkg/ruleset"
|
"ladder/pkg/ruleset"
|
||||||
|
|
||||||
@@ -21,6 +23,7 @@ var (
|
|||||||
ForwardedFor = getenv("X_FORWARDED_FOR", "66.249.66.1")
|
ForwardedFor = getenv("X_FORWARDED_FOR", "66.249.66.1")
|
||||||
rulesSet = ruleset.NewRulesetFromEnv()
|
rulesSet = ruleset.NewRulesetFromEnv()
|
||||||
allowedDomains = []string{}
|
allowedDomains = []string{}
|
||||||
|
defaultTimeout = 15 // in seconds
|
||||||
)
|
)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
@@ -28,6 +31,9 @@ func init() {
|
|||||||
if os.Getenv("ALLOWED_DOMAINS_RULESET") == "true" {
|
if os.Getenv("ALLOWED_DOMAINS_RULESET") == "true" {
|
||||||
allowedDomains = append(allowedDomains, rulesSet.Domains()...)
|
allowedDomains = append(allowedDomains, rulesSet.Domains()...)
|
||||||
}
|
}
|
||||||
|
if timeoutStr := os.Getenv("HTTP_TIMEOUT"); timeoutStr != "" {
|
||||||
|
defaultTimeout, _ = strconv.Atoi(timeoutStr)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// extracts a URL from the request ctx. If the URL in the request
|
// extracts a URL from the request ctx. If the URL in the request
|
||||||
@@ -181,7 +187,9 @@ func fetchSite(urlpath string, queries map[string]string) (string, *http.Request
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Fetch the site
|
// Fetch the site
|
||||||
client := &http.Client{}
|
client := &http.Client{
|
||||||
|
Timeout: time.Second * time.Duration(defaultTimeout),
|
||||||
|
}
|
||||||
req, _ := http.NewRequest("GET", url, nil)
|
req, _ := http.NewRequest("GET", url, nil)
|
||||||
|
|
||||||
if rule.Headers.UserAgent != "" {
|
if rule.Headers.UserAgent != "" {
|
||||||
|
|||||||
Reference in New Issue
Block a user