Skip to content

arencloud/hecate

Repository files navigation

Hecate

Playwright E2E Security Scans Release Images

AI-augmented load balancer with a Go-native control plane, multi-protocol data plane, and first-class observability.

Hecate separates the control plane (configuration, RBAC, automation) from the data plane (listeners, WAF, intelligent routing). It gives operators a Go/htmx Web UI, a fully documented REST API, and automation tooling for everything from ACME certificate management to AI-driven backend selection.

Hecate dashboard

Feature Highlights

  • Multi-protocol VIPs: Terminate or passthrough TCP, UDP, HTTP, and HTTPS listeners with host/SNI/path routing and FQDN filters.
  • AI-assisted routing & WAF: EWMA, weighted, AI-hint policies, plus adaptive WAF scoring backed by the observability pipeline.
  • Secrets & security: Vault/KMS integration for certificates, OIDC secrets, API token keys; MFA + RBAC-aware UI/API; CSP + auth rate limiting everywhere.
  • Operational excellence: Built-in ACME automation, Valkey-backed caches, event-driven hot reloads, and Kubernetes manifests (including NetworkPolicies) ready to use.
  • Observability by design: Unified metrics/logs/traces with dashboards, health history, and AI model lifecycle management.

Quick Start

  1. Prerequisites: PostgreSQL 14+, Valkey/Redis (optional for stickiness caches), Go 1.25, Node 18+ for Playwright tooling.
  2. Configure: Copy deployments/k8s/configmap.yaml as a reference or export the HECATE_* environment variables (database DSN, session secret, secrets provider, etc.).
  3. Set the seed admin password: export HECATE_ADMIN_SEED_PASSWORD=<your initial admin password> before the first migration/seed run (you can omit it after the admin user exists).
  4. Run the control plane:
    go run ./cmd/hecate-control
  5. Run the data plane (in another shell):
    go run ./cmd/hecate-data
  6. Browse to http://localhost:8080, sign in with the credentials you injected via HECATE_ADMIN_SEED_PASSWORD, and begin configuring VIPs, backend groups, and TLS profiles.

Deployment Options

  • Rootless containers / Podman: deployments/containers/* build OCI images that run as UID 65532, and deployments/podman/compose.yaml spins up Postgres, Valkey, and both planes with one command.
  • Kubernetes / Helm: Apply the manifests in deployments/k8s or install the bundled chart (deployments/helm/hecate). NetworkPolicies, CronJobs, and Prometheus integration are included.
  • Argo CD / GitOps: Use the ready-made deployments/argocd/application.yaml to sync the Helm chart via Argo CD with automated drift detection and CI/CD pipelines.
  • OpenShift: Follow the hardened flow in docs/deployment.md for SCC, Route, and registry integration guidance.

The full, environment-agnostic deployment guide (Podman → Kubernetes → OpenShift) lives in docs/deployment.md; it also lists every secret that must be injected at deploy time so nothing sensitive is committed to git.

Documentation Map

Topic Description
Product Overview Visual tour, architecture summary, core workflows, and links to detailed guides.
Architecture In-depth design (control/data planes, AI, WAF, observability).
Deployment Guide Step-by-step procedures for Podman, Helm/Kubernetes, and OpenShift + image build instructions.
Authentication & RBAC Flows for local auth, MFA, OIDC, and RBAC modelling.
Operations, Secrets ACME automation, API token rotation tooling, secrets guidance.
Testing, E2E Guide Unit/integration plans, Playwright specs, and screenshot automation (docs/screenshots.md).
Implementation Status Checklist of delivered features and outstanding work.

Screenshots

Hecate ships with a Playwright utility (tests/e2e/screenshots.spec.ts) that captures key UI surfaces. Set HECATE_E2E_CAPTURE_SHOTS=1 and run the spec to regenerate the PNGs in docs/images/. See docs/screenshots.md for details.

VIP management Backend groups
Observability Health history

Contributing & Testing

  • Run unit/integration tests with go test ./....
  • Execute the Playwright suite via npx playwright test (requires browsers installed via npx playwright install).
  • Static analysis, linting, and release steps are documented under docs/testing and docs/releases.

Issues and pull requests are welcome—review the implementation checklist to see current priorities.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors