Skip to main content

Getting Started with EasyHAProxy

EasyHAProxy dynamically builds haproxy.cfg from metadata on your running workloads — no HAProxy knowledge required.

Choose your runtime

EasyHAProxy runs in two ways:

RuntimeWhen to choose
Docker container (byjg/easy-haproxy)You already run Docker, Swarm, or Kubernetes
Native host (easy-haproxy CLI)You want HAProxy on the host with full OS control — no Docker needed

Choose your discovery mode

Once running, EasyHAProxy discovers your services in one of four ways:

ModeHow it worksLabel/annotation format
DockerReads labels from running containers on a Docker hostContainer labels
SwarmReads labels from services in a Docker Swarm clusterService labels
KubernetesReads ingressClassName: easyhaproxy Ingress resourcesIngress annotations
StaticReads a hand-written YAML file you provideYAML file

Quick-start guides

Pick the guide that matches your environment:

Container runtimes (Docker image)

  • Docker — standalone Docker host, container labels
  • Docker Swarm — overlay network, service labels
  • Kubernetes — Ingress controller, DaemonSet/NodePort
  • Static YAML — any environment, config file

Native host (pip/uv package)

What's next?

After you have traffic flowing:

  • Guides — SSL certificates, ACME/Let's Encrypt, plugins
  • Concepts — how service discovery and the config pipeline work
  • Reference — full environment variable and label tables