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
| |
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
Navigation
- Getting Started — install, quick start, test scenarios
- How It Works — request lifecycle, component architecture
- Configuration — all options for
config.yamland Docker labels - Security — admin auth, trusted proxies, Docker socket, distroless
- Hot-Reload — live config updates without restarts
- Groups & Dependencies — load balancing, dependency ordering
- Health Probe & Discovery — HTTP readiness probes, discovery interval tuning
- Prometheus Monitoring — metrics, Grafana dashboards, PromQL examples
- Testing — running the test suite, test coverage breakdown
- Roadmap — what’s done, what’s planned