fix(haproxy-stats): add stats socket to template + fix safeAt index-0 bug
Two root causes for Dashboard backends not showing: 1. haproxy.cfg.tpl had no stats socket directive → /run/haproxy/admin.sock never created → handler got "connection refused" → empty array returned. Fixed: added stats socket /run/haproxy/admin.sock mode 0660 level admin. 2. safeAt() used i<=0 instead of i<0 → pxname (column 0) always returned "" → all backend names were empty in the API response. After upgrade: HAProxy reload (triggered by any domain/backend save, or edgeguard-ctl render-config) will create the socket. v1.1.113. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -60,7 +60,7 @@ import (
|
|||||||
usersvc "git.netcell-it.de/projekte/edgeguard-native/internal/services/users"
|
usersvc "git.netcell-it.de/projekte/edgeguard-native/internal/services/users"
|
||||||
)
|
)
|
||||||
|
|
||||||
var version = "1.1.112"
|
var version = "1.1.113"
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
addr := os.Getenv("EDGEGUARD_API_ADDR")
|
addr := os.Getenv("EDGEGUARD_API_ADDR")
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ import (
|
|||||||
"git.netcell-it.de/projekte/edgeguard-native/internal/services/setup"
|
"git.netcell-it.de/projekte/edgeguard-native/internal/services/setup"
|
||||||
)
|
)
|
||||||
|
|
||||||
var version = "1.1.112"
|
var version = "1.1.113"
|
||||||
|
|
||||||
const usage = `edgeguard-ctl — EdgeGuard CLI
|
const usage = `edgeguard-ctl — EdgeGuard CLI
|
||||||
|
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ import (
|
|||||||
"git.netcell-it.de/projekte/edgeguard-native/internal/services/tlscerts"
|
"git.netcell-it.de/projekte/edgeguard-native/internal/services/tlscerts"
|
||||||
)
|
)
|
||||||
|
|
||||||
var version = "1.1.112"
|
var version = "1.1.113"
|
||||||
|
|
||||||
const (
|
const (
|
||||||
// renewTickInterval — how often we re-evaluate expiring certs.
|
// renewTickInterval — how often we re-evaluate expiring certs.
|
||||||
|
|||||||
@@ -135,7 +135,7 @@ func (h *HAProxyStatsHandler) Stats(c *gin.Context) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func safeAt(fields []string, i int) string {
|
func safeAt(fields []string, i int) string {
|
||||||
if i <= 0 || i >= len(fields) {
|
if i < 0 || i >= len(fields) {
|
||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
return fields[i]
|
return fields[i]
|
||||||
|
|||||||
@@ -15,6 +15,9 @@ global
|
|||||||
# Ohne dieses Flag verweigert HAProxy `bind quic4@…` mit "this SSL
|
# Ohne dieses Flag verweigert HAProxy `bind quic4@…` mit "this SSL
|
||||||
# library does not support the QUIC protocol".
|
# library does not support the QUIC protocol".
|
||||||
limited-quic
|
limited-quic
|
||||||
|
# Runtime-API-Socket für edgeguard-api (show stat, show info, …).
|
||||||
|
# mode 0660 + group haproxy → edgeguard-user (in haproxy-group) kann lesen.
|
||||||
|
stats socket /run/haproxy/admin.sock mode 0660 level admin expose-fd listeners
|
||||||
|
|
||||||
defaults
|
defaults
|
||||||
log global
|
log global
|
||||||
|
|||||||
Reference in New Issue
Block a user