sidekick
The sidekick command starts the MinIO Sidekick process with specified backend servers and configuration options.
Synopsis
sidekick [FLAGS] SITE1 [SITE2...]
Each site argument represents a group of backend servers. Multiple sites enable automatic failover. Within a site, separate multiple pools using commas.
Network and addressing
        
        --address, -a
    
Set the listening address for the load balancer.
Default: :8080
sidekick --address :9000 --health-path=/ready http://backend1:8000
        
        --rr-dns-mode
    
Enable round-robin DNS mode. Sidekick resolves a single hostname to multiple IP addresses and creates separate backends for each IP.
sidekick --rr-dns-mode --health-path=/ready http://sidekick.example.com:8000
        
        --dns-ttl
    
Set the DNS cache refresh interval for backend hostname resolution.
Default: 10m0s
sidekick --dns-ttl 5m --health-path=/ready http://backend.example.com:8000
Health checks
        
        --health-path, -p
    
Set the HTTP path for backend health checks. Sidekick appends this path to each backend URL.
sidekick --health-path /minio/health/ready http://server{1...4}:9000
        
        --read-health-path, -r
    
Set an alternate health check path for the last site only. Use this for read-only health checks after failover.
sidekick --health-path /health/cluster --read-health-path /health/cluster/read \
  http://site1:9000 http://site2:9000
        
        --health-port
    
Use a different port for health check requests instead of the backend service port.
Default: 0 (use service port)
sidekick --health-path /ready --health-port 8081 http://backend:8000
        
        --health-duration, -d
    
Set the interval between health check requests.
Default: 5s
sidekick --health-path /ready --health-duration 10s http://backend1:8000
        
        --health-timeout
    
Set the maximum time to wait for health check responses.
Default: 10s
sidekick --health-path /ready --health-timeout 15s http://backend1:8000
TLS and security
        
        --cert
    
Path to the server certificate file for TLS termination.
sidekick --cert /path/to/cert.pem --key /path/to/key.pem \
  --health-path /ready http://backend1:8000
        
        --key
    
Path to the server private key file for TLS termination.
sidekick --cert /path/to/cert.pem --key /path/to/key.pem \
  --health-path /ready http://backend1:8000
        
        --key-password
    
Password for encrypted private key files.
sidekick --cert /path/to/cert.pem --key /path/to/encrypted-key.pem \
  --key-password "passphrase" \
  --health-path /ready http://backend1:8000
        
        --client-cert
    
Path to client certificate file for authenticating to backends.
sidekick --client-cert /path/to/client.pem --client-key /path/to/client-key.pem \
  --health-path /ready https://backend1:8000
        
        --client-key
    
Path to client private key file for authenticating to backends.
sidekick --client-cert /path/to/client.pem --client-key /path/to/client-key.pem \
  --health-path /ready https://backend1:8000
        
        --cacert
    
Path to CA certificate file for verifying backend server certificates.
sidekick --cacert /path/to/ca.pem --health-path /ready https://backend1:8000
        
        --insecure, -i
    
Disable TLS certificate verification for backend connections.
sidekick --insecure --health-path /ready https://backend1:8000
        
        --auto-tls-host
    
Generate a self-signed certificate for the specified hostname or IP address. Accepts comma-separated values for multiple names.
sidekick --auto-tls-host server.example.com --health-path /ready http://backend1:8000
Load balancing
        
        --host-balance
    
Select the load balancing algorithm for distributing requests.
Options: least (least connections), random (random selection)
Default: least
sidekick --host-balance random --health-path /ready http://backend{1...4}:8000
Logging and tracing
        
        --log, -l
    
Enable logging for backend status changes and events.
sidekick --log --health-path /ready http://backend1:8000
        
        --json
    
Output logs and traces in JSON format for structured logging.
sidekick --log --json --health-path /ready http://backend1:8000
        
        --trace, -t
    
Enable request tracing with the specified level.
Options: all, application, minio
Default: all
sidekick --trace application --health-path /ready http://backend1:8000
        
        --debug
    
Output verbose trace information including headers and timing.
sidekick --trace all --debug --health-path /ready http://backend1:8000
        
        --quiet, -q
    
Disable all console output except fatal errors.
sidekick --quiet --health-path /ready http://backend1:8000
        
        --errors, -e
    
Filter trace output to show only error responses (4xx and 5xx status codes).
sidekick --trace all --errors --health-path /ready http://backend1:8000
        
        --status-code
    
Filter trace output to show only specific HTTP status codes. Accepts multiple values.
sidekick --trace all --status-code 503 --status-code 504 \
  --health-path /ready http://backend1:8000
Observability
        
        --pprof
    
Start the profiling server on the specified address for performance analysis.
sidekick --pprof :6060 --health-path /ready http://backend1:8000
Access profiles at http://localhost:6060/.pprof/profile, http://localhost:6060/.pprof/heap, and other standard pprof endpoints.
Examples
Load balance across four servers
sidekick --health-path /minio/health/cluster http://minio{1...4}:9000
Custom listening port
sidekick --health-path /minio/health/cluster --address :8000 http://minio{1...4}:9000
HTTPS backends without verification
sidekick --health-path /minio/health/cluster --insecure https://minio{1...4}:9000
TLS termination
sidekick --cert public.crt --key private.key \
  --health-path /minio/health/cluster \
  http://minio{1...4}:9000
Multi-site failover
sidekick --health-path /minio/health/cluster \
  http://site1-minio{1...4}:9000 \
  http://site2-minio{1...4}:9000
Multi-site with pools
sidekick --health-path /minio/health/cluster \
  http://site1-minio{1...4}:9000,http://site1-minio{5...8}:9000 \
  http://site2-minio{1...4}:9000,http://site2-minio{5...8}:9000
Read-only failover site
sidekick --health-path /minio/health/cluster \
  --read-health-path /minio/health/cluster/read \
  http://site1-minio{1...4}:9000 \
  http://site2-minio{1...4}:9000
Random load balancing
sidekick --host-balance random --health-path /minio/health/cluster \
  http://minio{1...4}:9000