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