Docker Awakening Gateway

An ultra-lightweight reverse proxy that wakes sleeping Docker containers on demand — with a live loading page, idle auto-stop, and zero-overhead proxying once the container is up.

Get Started Configuration Reference


Loading page — container awakening Admin status dashboard

Why?

In home labs, edge devices, and resource-constrained environments, keeping every service running 24/7 wastes RAM and CPU. The gateway lets containers sleep when idle and wake instantly on first request, without any user-facing action required.

Feature Highlights

Feature Details
On-demand startup Container sleeps until a request arrives — then wakes automatically
Live loading page Animated UI with real-time container logs while the container boots
Idle auto-stop Configurable idle_timeout per container; background watcher stops idle containers
Transparent proxy Zero overhead once the container is running — full HTTP + WebSocket support
Label discovery Add dag.enabled=true to any container; no static config needed
Dependency ordering depends_on with topological sort — start postgres before app automatically
Load balancing Round-robin across container groups behind a single hostname
Admin dashboard /_status page with live container status, heartbeat bars, start/stop actions
Prometheus metrics Per-container counters for requests, starts, durations, idle stops
Admin auth Optional Basic Auth or Bearer Token on /_status and /_metrics
Hot-reload docker kill -s HUP reloads config.yaml without dropping connections
Ultra-lightweight Static Go binary, distroless final image — ~22 MB

Quick look

 Request → my-app.example.com
      │
      ├─ container running? ──YES──► Reverse Proxy → response
      │
      └─ container stopped?
             ├──► Show loading page (live logs + progress bar)
             └──► docker start → TCP/HTTP readiness probe
                                       │
                                 browser polls /_health
                                       │
                                 status = "running"
                                       │
                                 redirect to redirect_path


Docker Awakening Gateway — MIT License