# Napwake > Pauses idle Kubernetes workloads in staging, preview and dev, and wakes them on the first request. Non-prod environments that sleep when nobody's using them, and wake when someone does. It never deletes a workload or its data. Napwake is open source (Apache 2.0): an operator, a kubectl napwake plugin and a Helm chart. - For: platform and infrastructure engineers who run staging, preview and dev environments on their own Kubernetes clusters. - Where: non-production environments, private or public. Private ones, behind a VPN, single sign-on or an allowlist, wake on the first request. Public ones can ask first, with `napwake.dev/wake: ask`. Then a browser gets a Wake it button, so a person wakes them and robots don't. Tooling and the forecast can wake them too. - Not for: production. It pauses and resumes, and doesn't scale under load. - Status: Version 0.2.0 is in release candidates. What it won't do: - Delete anything: its one action is to pause, scaling a workload to zero replicas. - Pause on a timetable. It pauses a workload after `idleAfter` with no sign of use, an hour by default. - Pause anything but Deployments and StatefulSets. - Replace your autoscaler. While a workload runs, its HPA or KEDA decides how many replicas it needs. Napwake only decides whether it should run at all. - Guess who's a person. On an environment anyone can reach, set it to ask. Then only a click on Wake it wakes it, and robots are turned away. ## Website - [Home](https://napwake.dev/): What Napwake is, `kubectl napwake scan`, the four states, and how a wake works. - [How it works](https://napwake.dev/how-it-works/): The activity clock, the doorman that holds the first request, the forecast's autoResume, and what a pause changes. - [How it compares](https://napwake.dev/compare/): Napwake, a timetable and a scale-to-zero proxy, through one evening and the next morning, and side by side. - [FAQ](https://napwake.dev/faq/): Short answers, each complete on its own, with its source. - [Changelog](https://napwake.dev/changelog/): What's new in each release from 0.2.0, newest first; 0.2.0 is in release candidates. - [Brand and trademarks](https://napwake.dev/brand/): The logo, the doorman illustrations (CC BY 4.0), and the trademark rules. ## Docs - [Installation](https://docs.napwake.dev/getting-started/installation/): The Helm chart, or the Kustomize manifests as install.yaml; needs Kubernetes 1.30+ and metrics-server. - [Quickstart](https://docs.napwake.dev/getting-started/quickstart/): One workload from idle to paused while idle, measured in dry-run first. - [kubectl plugin](https://docs.napwake.dev/getting-started/kubectl-plugin/): scan (with nothing installed), status, forecast, nodes, pause, wake and enable. - [Idle detection](https://docs.napwake.dev/concepts/idle-detection/): The activity clock and `idleAfter`. CPU, deploys, annotations and Prometheus queries count, and so does a request that wakes a paused workload. - [Wake on request](https://docs.napwake.dev/concepts/wake-on-request/): The doorman holds the first connection while a paused workload starts; any TCP protocol. - [Forecasting](https://docs.napwake.dev/concepts/forecasting/): A Holt-Winters model of each workload's week; autoResume wakes it 15 minutes ahead. - [Lifecycle](https://docs.napwake.dev/concepts/lifecycle/): Running, Idle, Pausing, Paused, Resuming, and the conditions each workload reports. - [Dependencies](https://docs.napwake.dev/concepts/dependencies/): Databases and workers woken and held with the workloads that use them. - [Cost tracking](https://docs.napwake.dev/concepts/cost-tracking/): What each pause frees, and what of it came off the bill once nodes went. - [Opting in](https://docs.napwake.dev/guides/opt-in/): A label on a workload or a namespace; settings as annotations; protected namespaces. - [Dry run](https://docs.napwake.dev/guides/dry-run/): Measure what Napwake would pause and free, without it pausing anything. - [Pause and resume](https://docs.napwake.dev/guides/pause/): What a pause changes and records; it never deletes a workload or its storage. - [GitOps tools](https://docs.napwake.dev/guides/gitops/): The one-time setting for Argo CD, Flux, Fleet, kapp and Kluctl to leave replicas alone. - [HPA and KEDA](https://docs.napwake.dev/guides/autoscalers/): Working alongside an autoscaler: it pauses to zero and resumes within its range. - [Node pools for real savings](https://docs.napwake.dev/guides/node-pools/): Giving non-prod its own nodes, so pausing empties whole nodes. - [Compatibility](https://docs.napwake.dev/reference/compatibility/): Service proxies, ingress controllers, cloud load balancers and meshes, as checked. - [kubectl plugin reference](https://docs.napwake.dev/reference/cli/): Every flag, JSON field, exit status and permission of the plugin's commands. - [Conditions and events](https://docs.napwake.dev/reference/conditions-and-events/): Every status condition, with its reasons, and every event. - [Troubleshooting](https://docs.napwake.dev/operations/troubleshooting/): When an idle workload isn't paused, requests fail instead of waking it, or it keeps cycling. - [Every docs page as Markdown, in one file](https://docs.napwake.dev/llms-full.txt) ## FAQ - [How do I scale staging to zero at night in Kubernetes?](https://napwake.dev/faq/#scale-staging-to-zero-at-night): On a timetable, or on use. A timetable turns everything off at set times, used or not. Napwake pauses each workload after `idleAfter` with no sign of use, an hour by default, nights and weekends included. The first request wakes it again. - [Does Napwake delete anything?](https://napwake.dev/faq/#does-it-delete-anything): No. Its one action is to pause, which scales a workload to zero replicas. The workload, its Services, its PVCs and their data stay. Only the pods are removed. - [What happens to the first request to a paused workload?](https://napwake.dev/faq/#first-request): It waits at the door. Napwake's doorman holds the connection while the workload starts, then passes it through. The caller usually sees one slow response, and no error. - [How is Napwake different from a timetable or a scale-to-zero proxy?](https://napwake.dev/faq/#schedule-or-proxy): A timetable turns everything off at set times, used or not. A scale-to-zero proxy decides on the HTTP requests that pass through it. Napwake pauses on use, CPU and deploys included, and wakes on the first request at the Service, for any TCP, with no change to your Ingress. - [Does Napwake work with Argo CD or Flux?](https://napwake.dev/faq/#argo-cd-and-flux): Yes, once the tool is told to leave replicas alone, a one-time setting. If a GitOps tool undoes a pause, Napwake reports how to fix it, and never fights Git. - [Does Napwake work on GKE or EKS?](https://napwake.dev/faq/#gke-and-eks): Yes, on Kubernetes 1.30 and later. On EKS, install metrics-server. On GKE, a Service in container-native load balancing (NEGs) needs the optional forwarder to wake on a request. - [Is Napwake for production?](https://napwake.dev/faq/#production): No. It's for non-production: staging, preview and dev. It pauses and resumes. Scaling under load is an HPA's or KEDA's job. - [Is Napwake for environments on the public internet?](https://napwake.dev/faq/#public-internet): Yes, with `napwake.dev/wake: ask`. A browser then gets a Wake it button, so a person wakes it and robots don't. Tooling, the CLI and the forecast can wake it too. - [Does pausing save money if nodes don't scale down?](https://napwake.dev/faq/#savings-without-node-scale-down): No. Pausing frees what the pods requested. Your bill is for nodes, so it becomes money only once a node autoscaler removes nodes. - [How do I try Napwake without risk?](https://napwake.dev/faq/#try-without-risk): Run kubectl napwake scan, which installs nothing. Then opt a workload in with dry-run, which measures what Napwake would pause and never pauses it. - [What does Napwake cost?](https://napwake.dev/faq/#cost): Nothing. It's free and open source under the Apache 2.0 licence. It runs in your own cluster, with one operator replica and two doorman replicas by default. ## Optional - [Source code](https://github.com/napwake/napwake): the operator, the kubectl plugin and the Helm chart, Apache 2.0. - [Brand](https://github.com/napwake/brand): the logo, the doorman illustrations (CC BY 4.0) and TRADEMARKS.md.