Deployment Overview

Deployment topologies and recommendations for SBproxy

Overview

SBproxy ships as a single static binary with no external runtime dependencies. Deploy it anywhere you can run an executable: containers, VMs, bare metal, or orchestrated clusters.

Deployment Options

MethodBest For
Docker / Docker ComposeLocal development, single-host deployments, and stacks with Redis, Prometheus, and Grafana
KubernetesProduction clusters with horizontal scaling and rolling updates
Bare MetalDirect binary deployment with systemd service management

Ports

PortProtocolPurpose
8080TCPHTTP listener (also serves /metrics for Prometheus and /live, /ready for health)
8443TCPHTTPS listener

Health Checks

SBproxy exposes health endpoints for orchestrators and load balancers:

  • /health - basic health status
  • /ready - readiness probe (config loaded, listeners bound)
  • /live - liveness probe

Configuration

SBproxy reads its config from sb.yml (or a directory of YAML files). Mount or copy your config to the expected path:

  • Docker: Mount as a volume at /etc/sbproxy/sb.yml
  • Kubernetes: Use a ConfigMap mounted at /etc/sbproxy/
  • Bare metal: Pass the path with sbproxy serve -c /path/to/sb.yml

Environment Variables

All CLI flags can be set via environment variables with the SB_ prefix. Useful for container deployments where command-line flags are less convenient:

SB_LOG_LEVEL=info
SB_CONFIG_FILE=/etc/sbproxy/sb.yml
SB_GRACE_TIME=30s