> ## Documentation Index
> Fetch the complete documentation index at: https://docs.nanny.run/llms.txt
> Use this file to discover all available pages before exploring further.

# nanny health

> Check the health of all active Nanny components in one command.

Shows the status of every Nanny component that is currently active. Exits `0` if all active components are healthy, `1` if any are unhealthy.

```bash theme={null}
nanny health
```

***

## What it checks

`nanny health` checks two things:

| Component    | Active when                | What "healthy" means                                          |
| ------------ | -------------------------- | ------------------------------------------------------------- |
| Governor     | `NANNY_BRIDGE_ADDR` is set | A connection to that address succeeds                         |
| Certificates | run inside a project       | Both bundles, sandbox and live: files present and not expired |

Something that was never started is **not checked** and does not cause a non-zero exit. `nanny health` only reports on what is active.

`nanny run` injects `NANNY_BRIDGE_ADDR` into the process it launches, so this answers from inside a governed process. Run from a plain terminal there is nothing to find, which is not a failure.

***

## Example output

**Inside a governed process:**

```
governor         : running  (127.0.0.1:62669)  [plain HTTP]
certs (sandbox)  : valid  (expires 2027-09-03T00:00:00Z)
certs (live   )  : not found
```

**Governor unreachable:**

```
governor         : unreachable  (server.example.com:62669), connection refused
certs (sandbox)  : valid  (expires 2027-05-01T09:00:00Z)
certs (live   )  : valid  (expires 2027-05-01T09:00:00Z)
```

Exit code is `1` when any active component is unreachable.

***

## Certificate expiry warning

When certs exist and are valid but expire within 30 days, `nanny health` prints a warning to stderr:

```
nanny health  : warning, the live certs expire in 14 day(s). Run `nanny certs rotate --live` to renew.
```

The exit code is still `0`, a near-expiry cert is healthy, just worth knowing about.

***

## Use in scripts and health checks

`nanny health` is designed for scripts, Docker health checks, and Kubernetes liveness probes:

**Docker:**

```dockerfile theme={null}
HEALTHCHECK --interval=30s --timeout=5s \
  CMD nanny health || exit 1
```

**Shell script:**

```bash theme={null}
if ! nanny health; then
  echo "Nanny is not healthy, aborting"
  exit 1
fi
```

**Kubernetes:**

```yaml theme={null}
livenessProbe:
  exec:
    command: ["nanny", "health"]
  initialDelaySeconds: 5
  periodSeconds: 30
```

***

## See also

* [`nanny status`](/v0.7/run#governance-server), focused status view for the governance server
* [`nanny certs show`](/v0.7/reference/cli-certs), cert expiry and file inventory
