Skip to main content

HAProxy Monitoring Dashboard

EasyHAProxy ships a real-time monitoring dashboard that gives you a live view of your HAProxy instance — frontends, backends, servers, traffic volume, request rates, and more — all from a single page, with no extra software required.

HAProxy Monitor dashboard

Enabling the dashboard​

Two environment variables are required:

VariablePurpose
HAPROXY_PASSWORDEnables the stats endpoint and the dashboard.
HAPROXY_STATS_CORS_ORIGINAllows the dashboard page to call the stats API. Required — without it the browser blocks the requests and the dashboard shows no data.

The dashboard page is served from port HAPROXY_STATS_PORT + 10000, but it fetches data from the stats API at HAPROXY_STATS_PORT. Because those are different ports, the browser treats them as different origins and enforces CORS. Set HAPROXY_STATS_CORS_ORIGIN to the exact origin you will use to open the dashboard.

docker run \
-e HAPROXY_PASSWORD=secret \
-e HAPROXY_STATS_CORS_ORIGIN=http://localhost:11936 \
... byjg/easy-haproxy

If you access the dashboard from a non-localhost address (e.g. a server IP or hostname), match that origin instead:

-e HAPROXY_STATS_CORS_ORIGIN=http://192.168.1.10:11936

Accessing the dashboard​

The dashboard is served on a dedicated port: HAPROXY_STATS_PORT + 10000.

HAPROXY_STATS_PORT (default 1936)Dashboard URL
1936http://<host>:11936/
8080http://<host>:18080/

Open http://<host>:11936/ (or http://<host>:11936/dashboard.html) in your browser. Requests to / and /index.html are automatically redirected to the dashboard page. Any other path returns a 404.

Login​

The first time you open the dashboard (or after disconnecting), a Connect to HAProxy dialog appears:

Connect to HAProxy login dialog

Fill in the three fields:

FieldWhat to enterExample
Stats URLThe stats API base URL — http://<host>:<HAPROXY_STATS_PORT>. The dashboard appends /;json automatically.http://localhost:1936
UsernameThe value of HAPROXY_USERNAME.admin
PasswordThe value of HAPROXY_PASSWORD.secret

You can also adjust the Polling Interval (1 s – 60 s) to control how often the dashboard refreshes live data. Click Connect to open the main view.

Why enter the Stats URL manually?

The dashboard HTML is static — it has no knowledge of which host or port HAProxy is running on. Entering the URL at login time makes the dashboard work in any environment without any server-side configuration.

Why a separate port?

The stats API (HAPROXY_STATS_PORT) speaks the native HAProxy stats protocol. The dashboard port (+10000) is a plain HTTP frontend that proxies to an embedded Python HTTP server running inside EasyHAProxy. This split keeps the two concerns cleanly separated and avoids HAProxy's 16 KB inline-file limit.

What you can see​

Summary cards​

At the top of the page, eight cards give an instant health snapshot:

CardDescription
FRONTENDSNumber of open frontends vs. total, with an "All UP" indicator
BACKENDSNumber of backends that are UP vs. total; highlights DOWN backends in orange
SERVERSServer health across all backends — UP, DOWN, and "no check" counts
BYTES INCumulative bytes received since last HAProxy start
BYTES OUTCumulative bytes sent since last HAProxy start
SESSIONSCurrent active sessions
REQUESTSTotal HTTP requests processed
REQ/SCurrent request rate

Charts​

Two real-time charts update every few seconds:

  • Traffic Volume — bytes in and bytes out plotted over time
  • Request Rate & Sessions — req/s and concurrent sessions plotted over time

Frontends & Backends table​

A tabbed table lets you drill into every frontend and backend:

  • All tab — frontends first, then backends and their servers
  • Frontends tab — name, status (OPEN/CLOSED), sessions, bytes in/out, request rate
  • Backends & Servers tab — backend health (UP/DOWN), session count, traffic, per-server detail with Expand / Flat toggle

You can filter by name using the search box above each section.

What makes this unique​

Most HAProxy installations expose only the raw stats page (tables of numbers) or require a separate Grafana + Prometheus stack for visualization. EasyHAProxy bundles a polished, self-contained dashboard that:

  • requires zero extra containers — it runs inside the EasyHAProxy process itself
  • uses HAProxy's own stats socket — no metrics scraping pipeline
  • works out of the box — enable with a single environment variable
  • is accessible over a plain HTTP connection — no TLS setup needed for internal monitoring

Environment variables​

VariableDescriptionDefault
HAPROXY_PASSWORDEnables stats and the dashboard. Required.empty
HAPROXY_USERNAMEUsername for the stats endpoint.admin
HAPROXY_STATS_PORTStats API port. Dashboard is served on this port + 10000.1936
HAPROXY_STATS_CORS_ORIGINRequired for the dashboard. Set to the exact origin you use to open the dashboard (e.g. http://localhost:11936). Without this the browser blocks stats API calls and the dashboard shows no data.empty

See the full Environment Variables reference for details.


Open source ByJG