Skip to content

Smart Proxy

Smart Proxy

Scale-to-zero and smart traffic management for Kubernetes & OpenShift — without touching your apps.

Get started View on GitHub

Smart Proxy dashboard


Why Smart Proxy?

Idle environments burn money. Preview, dev, staging and demo namespaces run 24/7 while nobody looks at them — and most apps can't scale to zero on their own.

Smart Proxy fixes that. It sits in front of your services, puts inactive Deployments to sleep (0 replicas), and wakes them on the first request — showing a friendly "waking up" page while the pod starts. It works by patching your existing Ingress or Route: no sidecars, no rewrites, no code changes. Turn it off and everything reverts.

What you get

  •   Auto-sleep & instant wake


    Scale idle deployments to zero and wake them transparently on the next request — a "waking up" page bridges the gap.

  •   Dependency chains


    Keep app → api → db awake together and let them sleep together. Traffic to one keeps the whole chain alive.

  •   Ingress and Routes


    Manage vanilla Kubernetes Ingresses and OpenShift Routes from a single, unified dashboard.

  •   Admin dashboard


    Routes grouped by namespace with live status, "sleeps in" timers, traffic charts, one-click patching, wake and sleep.

  •   Requests inspector


    Record what reaches a route for a few minutes: headers (credentials masked), cookies, and what Smart Proxy did with each request.

  •   Try a new version with some users


    Send requests matching a condition — a header, cookie, path or client IP — to another backend, and keep those users there. Made for trying a new version in production, with a beta or a few colleagues first.

  •   Built-in sign-in


    Put any application behind a sign-in page or access tokens, without an identity provider and without touching it.

  •   Zero app changes


    Annotation-based and fully reversible. Nothing to add to your images or your code.

  •   Blocked hours


    No wake-ups at night, on weekends or holidays — globally, per namespace or per route — with exceptions, and optionally a "Start it now" page for whoever really needs it.

  •   Uptime and savings


    How long each workload was up and the replica-hours it saved, over any period of the last 30 days (to the minute) or month by month over 12 months. Downloadable as CSV.

  •   Real cost savings


    Stop paying for preview, dev, staging and demo environments while they sit unused.

How it works

In four steps

  1. Patch a route from the dashboard — Smart Proxy points the Ingress/Route to itself (originals saved in annotations).
  2. Serve — incoming traffic hits Smart Proxy, which checks the target's state.
  3. Wake — if the deployment is asleep, it scales it up: browsers see a "waking up" page until it's ready, API calls and WebSockets simply wait for it.
  4. Sleep — after an idle timeout with no traffic, it scales the deployment back to zero.
flowchart LR
    U([User]) --> ING["Ingress / Route"]
    ING -->|patched| SP["Smart Proxy"]
    SP -->|awake| SVC["App Service"] --> POD["App Pods"]
    SP -. asleep .-> API["Kubernetes API"]
    API -. scale up .-> POD

Read the full architecture →

More than sleeping

Tools on each route's page: see what arrives, send some requests to another version, require sign-in, pause it, back it up and restore it.

Requests recorded for a route

Inspect, route, protect →

Get started

  •   Install


    Deploy with Helm in two commands, or run it locally with Docker Desktop.

    Installation guide

  •   Configure


    Environment variables, annotations and Helm values reference.

    Configuration

helm repo add smart-proxy https://ivseb.github.io/smart-proxy
helm install smart-proxy smart-proxy/smart-proxy --namespace smart-proxy --create-namespace