diff --git a/caddy/go.mod b/caddy/go.mod index 2b6f916f..fb9f98b8 100644 --- a/caddy/go.mod +++ b/caddy/go.mod @@ -12,11 +12,13 @@ retract ( replace github.com/dunglas/mercure => ../ require ( + github.com/KimMachineGun/automemlimit v0.7.0 github.com/MicahParks/keyfunc/v3 v3.3.10 github.com/caddyserver/caddy/v2 v2.9.1 github.com/dunglas/mercure v0.18.2 github.com/stretchr/testify v1.10.0 go.uber.org/zap v1.27.0 + go.uber.org/zap/exp v0.3.0 ) require ( @@ -102,6 +104,7 @@ require ( github.com/mschoch/smat v0.2.0 // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect github.com/onsi/ginkgo/v2 v2.22.2 // indirect + github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58 // indirect github.com/pelletier/go-toml/v2 v2.2.3 // indirect github.com/pires/go-proxyproto v0.8.0 // indirect github.com/pkg/errors v0.9.1 // indirect @@ -162,7 +165,6 @@ require ( go.uber.org/automaxprocs v1.6.0 // indirect go.uber.org/mock v0.5.0 // indirect go.uber.org/multierr v1.11.0 // indirect - go.uber.org/zap/exp v0.3.0 // indirect golang.org/x/crypto v0.33.0 // indirect golang.org/x/crypto/x509roots/fallback v0.0.0-20250214233241-911360c8a4f4 // indirect golang.org/x/exp v0.0.0-20250215185904-eff6e970281f // indirect diff --git a/caddy/go.sum b/caddy/go.sum index 9ed320ea..f1c38023 100644 --- a/caddy/go.sum +++ b/caddy/go.sum @@ -33,6 +33,8 @@ github.com/AndreasBriese/bbloom v0.0.0-20190825152654-46b345b51c96/go.mod h1:bOv github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/toml v1.4.0 h1:kuoIxZQy2WRRk1pttg9asf+WVv6tWQuBNVmK8+nqPr0= github.com/BurntSushi/toml v1.4.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= +github.com/KimMachineGun/automemlimit v0.7.0 h1:7G06p/dMSf7G8E6oq+f2uOPuVncFyIlDI/pBWK49u88= +github.com/KimMachineGun/automemlimit v0.7.0/go.mod h1:QZxpHaGOQoYvFhv/r4u3U0JTC2ZcOwbSr11UZF46UBM= github.com/Masterminds/goutils v1.1.1 h1:5nUrii3FMTL5diU80unEVvNevw1nH4+ZV4DSLVJLSYI= github.com/Masterminds/goutils v1.1.1/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU= github.com/Masterminds/semver/v3 v3.3.1 h1:QtNSWtVZ3nBfk8mAOu/B6v7FMJ+NHTIgUPi7rj+4nv4= @@ -336,6 +338,8 @@ github.com/onsi/ginkgo/v2 v2.22.2/go.mod h1:oeMosUL+8LtarXBHu/c0bx2D/K9zyQ6uX3cT github.com/onsi/gomega v1.36.2 h1:koNYke6TVk6ZmnyHrCXba/T/MoLBXFjeC1PtvYgw0A8= github.com/onsi/gomega v1.36.2/go.mod h1:DdwyADRjrc825LhMEkD76cHR5+pUnjhUN8GlHlRPHzY= github.com/openzipkin/zipkin-go v0.1.1/go.mod h1:NtoC/o8u3JlF1lSlyPNswIbeQH9bJTmOf0Erfk+hxe8= +github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58 h1:onHthvaw9LFnH4t2DcNVpwGmV9E1BkGknEliJkfwQj0= +github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58/go.mod h1:DXv8WO4yhMYhSNPKjeNKa5WY9YCIEBRbNzFFPJbWO6Y= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= github.com/pelletier/go-toml/v2 v2.2.3 h1:YmeHyLY8mFWbdkNWwpr+qIL2bEqT0o95WSdkNHvL12M= github.com/pelletier/go-toml/v2 v2.2.3/go.mod h1:MfCQTFTvCcUyyvvwm1+G6H/jORL20Xlb6rzQu9GuUkc= diff --git a/caddy/mercure/main.go b/caddy/mercure/main.go index 72fa6eac..ff2714a5 100644 --- a/caddy/mercure/main.go +++ b/caddy/mercure/main.go @@ -2,7 +2,13 @@ package main import ( + "log/slog" + + "github.com/caddyserver/caddy/v2" + + "github.com/KimMachineGun/automemlimit/memlimit" caddycmd "github.com/caddyserver/caddy/v2/cmd" + "go.uber.org/zap/exp/zapslog" // plug in Caddy modules here. _ "github.com/caddyserver/caddy/v2/modules/standard" @@ -10,5 +16,19 @@ import ( ) func main() { + // Backport of https://github.com/caddyserver/caddy/pull/6809 + // TODO: remove this block when Caddy 2.10 will be released + _, _ = memlimit.SetGoMemLimitWithOpts( + memlimit.WithLogger( + slog.New(zapslog.NewHandler(caddy.Log().Core())), + ), + memlimit.WithProvider( + memlimit.ApplyFallback( + memlimit.FromCgroup, + memlimit.FromSystem, + ), + ), + ) + caddycmd.Main() }