Add "behind proxy" mode to use forwarded IP headers

This commit is contained in:
William Bouzourène 2025-01-26 14:24:55 +01:00
parent a4b505f965
commit e915d62afa
Signed by: bouzoure
SSH key fingerprint: SHA256:19MbXpLua4rUtk8tunMesD8KUKb91LXLHg8E/qTooww
3 changed files with 11 additions and 2 deletions

View file

@ -2,5 +2,6 @@ DEBUG=false
DEV_MODE=false
APP_LISTEN_ADDRESS=127.0.0.1
APP_LISTEN_PORT=3000
APP_BEHIND_PROXY=false
DATABASE_LOCATION=./people.db
SESSIONS_LOCATION=./sessions.db

View file

@ -12,6 +12,7 @@ type Config struct {
App struct {
ListenAddress string `env:"APP_LISTEN_ADDRESS"`
ListenPort uint `env:"APP_LISTEN_PORT"`
BehindProxy bool `env:"APP_BEHIND_PROXY"`
}
Database struct {
Location string `env:"DATABASE_LOCATION"`

11
main.go
View file

@ -67,10 +67,17 @@ func main() {
pongo2.RegisterFilter("time_diff", helpers.TemplTimeDiff)
app := fiber.New(fiber.Config{
fiberConfig := fiber.Config{
Views: engine,
ErrorHandler: helpers.FiberErrorHandler,
})
}
// If app behind proxy, use headers for IP
if config.App.BehindProxy {
fiberConfig.ProxyHeader = fiber.HeaderXForwardedFor
}
app := fiber.New(fiberConfig)
if config.DevMode {
app.Static("/static", "./static")