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:
| Runtime | When 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:
| Mode | How it works | Label/annotation format |
|---|---|---|
| Docker | Reads labels from running containers on a Docker host | Container labels |
| Swarm | Reads labels from services in a Docker Swarm cluster | Service labels |
| Kubernetes | Reads ingressClassName: easyhaproxy Ingress resources | Ingress annotations |
| Static | Reads a hand-written YAML file you provide | YAML 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)
- Native install — HAProxy on the host,
easy-haproxyCLI
What's next?
After you have traffic flowing: