Basic deployment

Deploy MinIO Sidekick to distribute traffic across multiple backend servers within a single site.

Single backend group

Start Sidekick with a health check path and list of backend servers:

sidekick --health-path=/ready http://server1:8000 http://server2:8000 http://server3:8000 http://server4:8000

Sidekick listens on port 8080 by default and forwards requests to healthy backends. Configure a different listen port using --address:

sidekick --health-path=/ready --address :9000 http://server1:8000 http://server2:8000

Ellipses expansion

Use ellipses syntax to specify ranges of backend servers:

sidekick --health-path=/minio/health/ready http://minio{1...4}:9000

This expands to four backends: http://minio1:9000, http://minio2:9000, http://minio3:9000, and http://minio4:9000. The syntax supports any numeric range with automatic zero-padding.

DNS round-robin mode

For load balancer configurations with DNS round-robin, enable --rr-dns-mode to treat a single hostname as multiple backends:

sidekick --health-path=/ready --rr-dns-mode http://sidekick.example.com:8000

Sidekick performs a DNS lookup on the hostname, creates a separate backend for each resolved IP address, and distributes traffic across all IPs. The DNS cache refreshes automatically at the configured TTL interval.

Client access

Point client applications to the load balancer address instead of directly to backend servers. Clients send requests to http://localhost:8080 (or the configured address), and the load balancer forwards requests to healthy backends transparently.

Sidekick adds headers to forwarded requests including X-Forwarded-Host, X-Real-IP, and X-Forwarded-For. Backend applications can use these headers to identify the original client.