diff --git a/.env.example b/.env.example index 262db97..da20ebe 100644 --- a/.env.example +++ b/.env.example @@ -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 diff --git a/helpers/config.go b/helpers/config.go index 492c869..7e1b931 100644 --- a/helpers/config.go +++ b/helpers/config.go @@ -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"` diff --git a/main.go b/main.go index 85017e7..e8a663c 100644 --- a/main.go +++ b/main.go @@ -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")