Skip to main content
Open WebUI supports horizontal scaling with Redis for multi-worker and multi-node deployments behind load balancers. This enables high-availability, fault-tolerant production deployments.

Overview

Redis provides:
  • Distributed Sessions - Share user sessions across multiple instances
  • WebSocket State - Synchronized real-time connections across workers
  • Configuration Sync - Propagate runtime config changes to all nodes
  • Task Coordination - Distributed task management and pub/sub
  • Rate Limiting - Centralized rate limit tracking
  • Token Revocation - Shared JWT token blacklist

Prerequisites

  • Redis server (standalone, cluster, or Sentinel)
  • Load balancer (nginx, HAProxy, AWS ALB, etc.)
  • Multiple Open WebUI instances

Redis Configuration

Standalone Redis

Basic Redis connection:

Redis with Authentication

Redis with TLS/SSL

Redis Cluster

For Redis Cluster deployments:

Redis Sentinel

For high-availability Redis Sentinel:

Session Management

Redis-backed sessions enable stateless application servers:

Session Configuration

WebSocket Scaling

Redis enables WebSocket connections across multiple instances:
  • Real-time chat updates synchronized
  • Task status notifications broadcast
  • Multi-node pub/sub messaging
Automatic - WebSocket support is automatically enabled when REDIS_URL is configured.

Persistent Configuration

Enable runtime configuration updates across all instances:
Configuration changes via Admin UI are:
  1. Saved to database
  2. Published to Redis
  3. Applied to all running instances

Docker Compose Example

Multi-Instance Deployment with Redis

Nginx Load Balancer Configuration

nginx.conf:

Cloud Deployments

AWS with Application Load Balancer

ALB Configuration:
  • Target Group: Multiple Open WebUI instances
  • Health Check: /health endpoint
  • Stickiness: Not required (Redis sessions)
  • WebSocket: Enable WebSocket upgrade headers

Kubernetes with Ingress

Redis High Availability

Redis Sentinel

For production deployments with automatic failover:
sentinel.conf:

Monitoring and Health Checks

Health Check Endpoint

Returns:

Redis Connection Check

Monitor Redis Keys

Troubleshooting

Redis Connection Failures

Problem: Cannot connect to Redis Check:

Session Loss

Problem: Users logged out frequently Check:
  • Redis is running and accessible
  • ENABLE_STAR_SESSIONS_MIDDLEWARE=true is set
  • REDIS_URL is correctly configured
  • Redis has sufficient memory (check INFO memory)

WebSocket Disconnections

Problem: Real-time features not working Check:
  • Load balancer supports WebSocket upgrades
  • Nginx: proxy_set_header Upgrade $http_upgrade;
  • ALB: Enable WebSocket support
  • Redis pub/sub is functioning

Configuration Not Syncing

Problem: Config changes not applied to all instances Check:
  • ENABLE_PERSISTENT_CONFIG=true on all instances
  • All instances use same REDIS_URL
  • Redis pub/sub channels working: redis-cli PUBSUB CHANNELS

Performance Tuning

Redis Optimization

Connection Pooling

Open WebUI automatically manages Redis connection pools. Adjust if needed:

Implementation Details

  • Redis utilities: backend/open_webui/utils/redis.py
  • Session management: starsessions[redis]==2.2.1
  • Task coordination: backend/open_webui/tasks.py
  • Configuration sync: backend/open_webui/config.py:228-287
  • Rate limiting: backend/open_webui/utils/rate_limit.py

Security Best Practices

Redis Security:
  1. Authentication - Always use requirepass or ACLs
  2. TLS/SSL - Use rediss:// for encrypted connections
  3. Network Isolation - Bind Redis to private network only
  4. Firewall Rules - Restrict Redis port (6379) access
  5. Regular Updates - Keep Redis updated for security patches
  6. Memory Limits - Set maxmemory to prevent OOM

Next Steps