Smart.
Simple.
Grenzenlos.

Der intelligente Reverse Proxy für KMUs – mit integrierter Lua Engine für grenzenlose Anpassungsmöglichkeiten.

keystone.yaml
tenants:
  - name: "my-app"
    path_prefix: "/api/"
    lua_script: |
      -- Custom authentication
      if not check_api_key(request.headers["X-API-Key"]) then
        return reject(401, "Unauthorized")
      end
      
      -- Rate limiting
      if rate_limit_exceeded(client_ip, 100) then
        return reject(429, "Too Many Requests")  
      end
                            

Warum Keystone Gateway?

Entwickelt für KMUs, die moderne Infrastruktur brauchen – ohne Komplexität.

Health-basiertes Load Balancing

Automatische Weiterleitung nur an gesunde Backends. Null Downtime durch intelligente Failover-Logik.

Multi-Tenant Architecture

Pro Mandant eigene Routen und Services. Perfekt für Agenturen mit mehreren Kunden.

YAML-Konfiguration

Kein komplizierter JSON oder Caddyfile. Einfach, lesbar, git-versionierbar.

Go Performance

Blitzschnell, ressourcenschonend, single binary. Läuft überall ohne Dependencies.

Monitoring & Metriken

Prometheus-Export, Grafana-ready. Detaillierte Performance-Überwachung out of the box.

Docker & Swarm Ready

Alpine-basiert, optimiert, production-ready. Einfache Deployment-Strategien.

Lua Engine:
Grenzenlose Möglichkeiten

Mit der integrierten Lua Engine wird Keystone Gateway zur programmierbaren Infrastruktur. Schreibe Custom Logic direkt in der Konfiguration – ohne externe Dependencies.

Custom Authentication

JWT-Validierung, API-Key-Checks, OAuth-Flows – alles in Lua.

Rate Limiting & Throttling

Intelligente Rate Limits pro Client, IP oder API-Key.

Request Transformation

Headers manipulieren, Payloads transformieren, Routing-Logic.

lua-magic.lua
-- JWT Token Validation
function validate_jwt(token)
    local payload = jwt.decode(token, secret_key)
    if payload.exp < os.time() then
        return false, "Token expired"
    end
    return true, payload
end

-- Custom Rate Limiting
function rate_limit(client_ip, limit)
    local current = redis.get(client_ip) or 0
    if current >= limit then
        return false
    end
    redis.incr(client_ip, 60) -- 60s TTL
    return true
end

-- Main Request Handler
local auth_header = request.headers["Authorization"]
local valid, payload = validate_jwt(auth_header)

if not valid then
    return reject(401, "Unauthorized")
end

if not rate_limit(client_ip, 100) then
    return reject(429, "Too Many Requests")
end

-- Add custom headers
request.headers["X-User-ID"] = payload.user_id
request.headers["X-Tenant"] = payload.tenant
                        

Setup in 3 Minuten

Ein Docker-Command und du bist ready to go.

1

Repository klonen

git clone https://github.com/ygalsk/keystone-gateway.git
cd keystone-gateway
2

Konfiguration anpassen

Bearbeite configs/gateway.yaml nach deinen Bedürfnissen.

3

Starten & läuft

make build && make start

Gateway läuft auf localhost:8080

Beispiel Konfiguration