Redis-based rate limiting sidecar (sliding window, token bucket)
1.2K
Redis-based rate limiting sidecar. Supports sliding window and token bucket strategies.
docker run -p 8080:8080 \
-e REDIS_URL=redis://redis:6379/0 \
-e DEFAULT_RATE=100/minute \
ogulcanaydogan/rate-limiter
Check if a request is within rate limits.
Response:
{
"allowed": true,
"limit": 100,
"remaining": 99,
"reset": 1709424000
}
Reset rate limit for a specific key.
Get rate limiter statistics.
| Variable | Description | Default |
|---|---|---|
PORT | Server port | 8080 |
REDIS_URL | Redis connection URL | redis://localhost:6379/0 |
DEFAULT_RATE | Default rate limit (e.g., 100/minute, 1000/hour) | 100/minute |
STRATEGY | Algorithm: sliding_window or token_bucket | sliding_window |
WHITELIST | Comma-separated IPs to bypass limiting | - |
KEY_PREFIX | Redis key prefix | rl: |
<limit>/<window> where window is: second, minute, hour, day
Examples: 100/minute, 1000/hour, 10/second, 50000/day
services:
redis:
image: redis:7-alpine
rate-limiter:
image: ogulcanaydogan/rate-limiter
ports:
- "8080:8080"
environment:
- REDIS_URL=redis://redis:6379/0
- DEFAULT_RATE=100/minute
- STRATEGY=sliding_window
depends_on:
- redis
app:
image: myapp
environment:
- RATE_LIMITER_URL=http://rate-limiter:8080
MIT
Content type
Image
Digest
sha256:5b3e2dca1…
Size
47.9 MB
Last updated
7 months ago
docker pull ogulcanaydogan/rate-limiter