6.0.1
What's New
Real-Time Monitoring Dashboard
EasyHAProxy now ships a built-in monitoring dashboard — no extra containers, no Prometheus, no Grafana required.
- Zero-dependency: runs inside the EasyHAProxy process as a Python daemon thread, served via an embedded HTTP server on
127.0.0.1:9190and proxied through a dedicatedfrontend dashboard/backend srv_dashboard - Live view: frontends, backends, servers, bytes in/out, active sessions, request rate — all updating in real time
- Charts: Traffic Volume and Request Rate & Sessions plotted over time
- Enable with one env var: set
HAPROXY_PASSWORDand openhttp://<host>:11936/
See the Monitoring Dashboard guide for setup details.
Health Checks for Internal Backends
srv_stats and srv_dashboard internal backends now carry check, so HAProxy actively monitors them and the stats page reflects their real status.
Note:
certbot_backendintentionally has nocheck— the certbot listener is ephemeral and only runs during ACME challenges.
Bug Fixes
- Fixed ACME e2e test fixture leaking containers when
docker compose --waitfailed. Thedocker_compose_acmefixture now guaranteesfixture.down()is called even whenfixture.up()raises. - Fixed stale cached Docker image being used by the ACME test compose. The compose now references
byjg/easy-haproxy:local— the same image built by the main test suite.
Documentation
- New Monitoring Dashboard guide with screenshots, login dialog explanation, and environment variable reference
HAPROXY_STATS_CORS_ORIGINnow documented as required for the dashboard to function (browser enforces CORS between the dashboard port and the stats API port)- README updated with dashboard feature highlight and thumbnail
Environment Variables
| Variable | Description | Default |
|---|---|---|
HAPROXY_PASSWORD |
Enables stats endpoint and the dashboard | empty |
HAPROXY_STATS_CORS_ORIGIN |
Required for the dashboard. Set to the origin you use to open it (e.g. http://localhost:11936) |
empty |
HAPROXY_STATS_PORT |
Stats API port. Dashboard served on this port + 10000 | 1936 |