Skip to content

ZPO — Zone Proxy Orchestrator

ZPO ist die zentrale Verwaltung für verteilte Infrastrukturen: Es steuert mehrere HAProxy-Instanzen, lokale DNS-Server (MikroTik RouterOS, AdGuard Home) und TLS-Zertifikate über Standorte hinweg — aus einer einzigen Oberfläche.

Der Name trägt die drei Aufgaben:

  • Zone — standortbewusstes Routing per Split-DNS: Clients erreichen immer den Proxy ihres eigenen Standorts, lokaler Verkehr bleibt im LAN.
  • Proxy — Routen, Backend-Pools, Health-Checks und Failover auf allen HAProxy-Knoten über die HAProxy Data Plane API.
  • Orchestrator — ein Go-Binary mit eingebetteter Web-Oberfläche und SQLite. Es bleibt bedienbar, wenn einzelne Knoten offline sind, und synchronisiert später nach.

Für ZPO gibt es ein Installationsskript, das aus einem frischen Ubuntu-Server in wenigen Minuten einen fertigen HAProxy-Knoten macht — HAProxy, Data Plane API, Grundkonfiguration, Firewall-Freigabe und Zugangsdaten inklusive:

Terminal window
curl -fsSL https://repo.techeve.de/zpo/setup-haproxy.sh | sudo bash

Am Ende stehen die drei Angaben auf dem Bildschirm, die in ZPO einzutragen sind. Details: Knoten einrichten.

Für Betreiber mehrerer Standorte — Cloud-Instanzen, Rechenzentren, Zweigstellen, Heimlabore —, die Dienste zentral veröffentlichen wollen, ohne jeden Proxy und jeden Resolver von Hand zu pflegen.

  • Standorte mit eigenen Proxy- und DNS-Knoten; Verbindungstest je Knoten.
  • Dienste veröffentlichen: Hostname auf Backend-Pool oder Einzelziel, mit Force HTTPS, HSTS, WebSocket, IP-Gruppen und Rate-Limits — ohne Reload des Proxys.
  • Backend-Pools mit Lastverteilung (roundrobin, leastconn, source), Health-Checks, Gewichtung, Backup- und Wartungsschaltung.
  • Split-DNS: Jeder Resolver bekommt die Adresse des Proxys seines Standorts. TTL je Dienst, wo der Resolver das kann.
  • TLS-Zertifikate per ACME/DNS-01 (Let’s Encrypt und beliebige andere CAs), Wildcards und SAN, ARI-gesteuerte Erneuerung, Verteilung ohne Reload, Upload von Fremdzertifikaten.
  • Failover: Active-Active (DNS Round-Robin) oder Active-Passive mit Schwellenwert und Karenzzeit, Wartungsmodus, VRRP-Paare, manueller Failback.
  • Härtung: Audit-Log mit Zurückrollen, eingebaute Sicherung (Pfad oder SFTP), Alarme über SMTP, Webhook und /metrics, Notzugang per CLI und lokalem Port. Die Verwaltung der Knoten spricht TLS, ZPO prüft das Zertifikat am Fingerabdruck.
  • CrowdSec auf den Knoten: Erkennung aus den HAProxy-Logs, Sperren direkt in HAProxy, WAF je Dienst, Login-Schutz, Köderpfade und Ratengrenzen. ZPO überwacht die Knoten, gleicht die Sperren zwischen den Standorten ab und zeigt die Sperrliste.
  • Zwei Sperrstufen: Erst eine Prüfseite mit eigenem ALTCHA-Rätsel (Cookie-Dauer einstellbar), dann eine Sperre am Router, wenn ein Besucher wiederholt auffällt. Je Dienst abschaltbar, wenn eine Prüfseite dort nicht passt.
  • MCP für Agenten: KI-Agenten lesen Konfiguration und Zustand und ändern Dienste, Pools und Fehlerprofile über /mcp — mit eigenem API-Schlüssel und Audit-Eintrag.
  1. ZPO installieren und starten: Installation
  2. Einen HAProxy-Knoten mit dem Installationsskript einrichten und in ZPO eintragen: Knoten einrichten
  3. Den ersten Dienst veröffentlichen: Dienste und Pools
  4. TLS absichern: Zertifikate

Danach: Failover einstellen und den Betrieb absichern. Automatisierungen laufen über die REST-Schnittstelle, Agenten arbeiten über die MCP-Schnittstelle.