Repository navigation
v0.1.11
Added
- Rate limits can now be shared across multiple Keygate instances through Redis or Valkey. Set
REDIS_URLand every instance
counts against the same limits. Before this releaseREDIS_URLwas accepted but had no effect, so each instance limited on its
own and N instances allowed N times the configured limit. - The bundled
docker-compose.ymlpassesREDIS_URLthrough to the container.
Changed
- If Redis becomes slow or unreachable, rate limiting falls back to per-instance in-memory limits instead of failing. Each Redis
call gives up after 250 ms, a circuit breaker stops retrying a dead endpoint, and Keygate reconnects automatically once Redis is
back, without a restart. REDIS_URLacceptsredis://andrediss://URLs as well as a barehost:port. A malformed URL is logged without exposing
the password, and Keygate starts with in-memory limits.- Rate-limit keys are namespaced per install, derived from
BASE_URL, so several installs can share one Redis database. Installs
that share a domain should use separate database numbers, for exampleredis://host:6379/1. - Built with Go 1.27. Dependencies are updated, including fixes for known vulnerabilities in
golang.org/x/net,
golang.org/x/textandquic-go. - Release images build faster, especially for arm64.
Upgrade notes
- No database migration or configuration change is required. Without
REDIS_URL, rate limiting behaves exactly as before. - Building from source now requires Go 1.27.
- Webhook URLs with a malformed host, such as an IPv6 address without brackets (
http://::1/), are now rejected. Use brackets
instead:http://[::1]/.
Full Changelog: v0.1.10...v0.1.11