86aee33308d2073a80abbceb898e049c60132a14
Die self-Registrierung in ha_nodes uebergab beim API-Start hart "primary" — fuer JEDEN Node. Da ha_nodes node-lokal ist (nicht repliziert), trug sich damit auch ein per Join dazugekommener Standby bei sich selbst als Primary ein. In der Cluster-Ansicht DIESES Nodes erschienen beide Knoten als Primary, und eine Korrektur direkt in der DB hielt nur bis zum naechsten Neustart. Nicht kosmetisch: keepalived.go nimmt `role` als Fallback, wenn pg_role nicht 'standby' ist. Ein Standby, der sich selbst "primary" nennt, ist damit genau der Zustand, der 2026-05 schon einmal einen Split-Brain ausgeloest hat (beide Knoten Prioritaet 200, hoehere IP gewinnt). Aktuell deckt pg_role='standby' das ab — aber als alleinige Absicherung ist das duenn. Die Rolle wird jetzt aus der Replikations-Topologie abgeleitet, also der in cluster_repair.go dokumentierten verlaesslichen Quelle: nur der Primary hat die PUBLICATION, nur der Standby die SUBSCRIPTION (beide Kataloge darf der edgeguard-DB-User lesen, verifiziert). Das ist selbstheilend und ueberlebt `edgeguard-ctl promote` korrekt — eine Ableitung aus setup.json wuerde den Promote dagegen bei jedem Neustart wieder ueberschreiben. Ohne eingerichtete Replikation entscheidet IsClusterNode. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
EdgeGuard
Native Reverse-Proxy / Loadbalancer / Forward-Proxy / VPN / Firewall — als signiertes .deb für Debian 13 + Ubuntu 24.04, amd64 + arm64.
Status: v0.x — Neufassung des bisherigen Docker-Stacks, parallel zum Bestand
proxy-lb-waf.
Installation
curl -fsSL https://get.edgeguard.netcell-it.de | sudo bash
Unterstützte Plattformen: Debian 13 (Trixie), Ubuntu 24.04 LTS (Noble) — amd64 + arm64.
Architektur in Kürze
- Daten-Services (v1): HAProxy (TLS-Termination + LB + L7-Routing), Squid, WireGuard, Unbound, nftables — alle nativ via APT, Configs aus PostgreSQL generiert.
- Control-Plane:
edgeguard-api(Go/Gin),management-ui(React/AntD), PostgreSQL 16, KeyDB Active-Active. - Cluster: N symmetrische Peers, KeyDB AA für Shared State, PG Streaming Replication, Floating-IP des Hosters statt VRRP.
- Auslieferung: signierte
.deb, Update viaapt. Update-Trigger via UI/API.
Volle Architektur: docs/architecture.md.
Build
make build # Host-Architektur
make deb # amd64 + arm64 .deb
make publish # deb + Upload Gitea Package Registry
Repo
- Lokal:
/var/www/edgeguard-native - Gitea:
https://git.netcell-it.de/projekte/edgeguard-native
Description
EdgeGuard Native — Reverse-Proxy / Loadbalancer / Forward-Proxy / VPN / Firewall ohne Docker, .deb-Auslieferung fuer Debian 13
Languages
Go
52.8%
TypeScript
36.4%
Shell
4.6%
CSS
4.4%
Smarty
1.5%
Other
0.3%