
▲ 6 r/SelfHosting
I created HAProxy Cluster Manager — a web UI for HAProxy with Let's Encrypt and multi-node failover (Keepalived)
I wanted a web UI for HAProxy the way Nginx Proxy Manager is one for nginx — and I wanted the proxy itself to stop being a single point of failure. So I created one, and I've just released it (GPL-3.0):
https://github.com/avandeputte/haproxy-manager
- Publish a service from two lines — the public URL and the backend address. It generates the frontend, backend, ACLs, certificate, and HTTP→HTTPS redirect, and shows the exact
haproxy.cfgbefore anything is written. - Recipes turn the complex setups into a dropdown. Pick Jellyfin and the port, health check and timeouts are filled in. Pick Patroni and you get the config people usually spend an evening on: TCP to Postgres on 5432 while an HTTP check asks each node's API on 8008 which one is the primary, source-IP stickiness, and alerting that understands "1 of 3 up" is this pool's healthy state. MariaDB Galera and raw TCP work the same way.
- Let's Encrypt via acme.sh — HTTP-01 and DNS-01. Renewals run automatically, HAProxy is reloaded, and certs are pushed to the other nodes so a failover never serves a stale one.
- Any number of nodes with Keepalived on a shared virtual IP. Config and certificates sync, offline nodes catch up on their own, and the overview calls out split brain, nobody holding the VIP, or a node stuck on an old config.
- Optional sign-in per service: basic auth or OIDC SSO (Authentik, Keycloak, Authelia, Google, Entra) — enforced by HAProxy itself, no Lua, so unauthenticated requests never reach your apps.
- Monitoring built in: live stats, per-service traffic history, a watchdog that knows stopped vs hung, once-a-minute probes of every published URL the way a browser would ask, alerts by email/Pushover/webhook, Home Assistant via MQTT discovery, Prometheus
/metrics.
Implementation: one Python app, all state in a single JSON file, no database. The config stays generated — validated with haproxy -c before writing, and Apply rolls back if HAProxy doesn't come back up. Install via .deb/.rpm, an install script, or an all-in-one Docker image (amd64/arm64).
Every screenshot in the README is the real app driven against a three-node cluster.
I'd love feedback!
u/ScaleMysterious1296 — 5 days ago