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