implement x-forwarded-proto

This commit is contained in:
orangix
2026-01-05 08:05:49 +01:00
parent 42174c052d
commit 09222a116f
2 changed files with 22 additions and 17 deletions

View File

@@ -6,15 +6,16 @@ import (
)
type config struct {
Port string
Addr string
ImgurId string
Secure bool
FiberPrefork bool
ImageCache bool
CleanupInterval time.Duration
CacheDir string
Privacy map[string]interface{}
Port string
Addr string
ImgurId string
ProtocolDetection bool
Secure bool
FiberPrefork bool
ImageCache bool
CleanupInterval time.Duration
CacheDir string
Privacy map[string]interface{}
}
var Config config
@@ -45,11 +46,12 @@ func LoadConfig() {
}
Config = config{
Port: port,
Addr: addr,
ImgurId: imgurId,
Secure: os.Getenv("SECURE") == "true",
FiberPrefork: os.Getenv("FIBER_PREFORK") == "true",
Port: port,
Addr: addr,
ImgurId: imgurId,
ProtocolDetection: os.Getenv("PROTOCOL_DETECTION") == "true" || os.Getenv("PROTOCOL_DETECTION") == "1",
Secure: os.Getenv("SECURE") == "true",
FiberPrefork: os.Getenv("FIBER_PREFORK") == "true",
Privacy: map[string]interface{}{
"set": os.Getenv("PRIVACY_NOT_COLLECTED") != "",
"policy": os.Getenv("PRIVACY_POLICY"),

View File

@@ -3,9 +3,12 @@ package utils
import "github.com/gofiber/fiber/v2"
func GetInstanceUrl(c *fiber.Ctx) string {
proto := "https://"
proto := "https"
if !Config.Secure {
proto = "http://"
proto = "http"
}
return proto + c.Hostname()
if Config.ProtocolDetection {
proto = c.Get("X-Forwarded-Proto", proto)
}
return proto + "://" + c.Hostname()
}