> Section: [7. Running it](https://jaque.sh/docs/deployment/choose.md)
> Next: deployment/guides/kubernetes-distributed
> Index: https://jaque.sh/llms.txt


One pod, `deploymentMode: standalone`, everything in one process. This
is the shape [Choose your deployment](https://jaque.sh/docs/deployment/choose.md) points at for
Kubernetes running everything in one pod.

## 1. Prerequisites

A cluster with a default `StorageClass` (for the event log's PVC) and
`helm` installed locally.

## 2. Install

```sh
helm install jaque oci://<registry>/jaque/charts/jaque --version <chart version> \
  -f values.yaml
```

See [Kubernetes](https://jaque.sh/docs/deployment/kubernetes.md) for what `deploymentMode` selects and
what the chart refuses to render.

## 3. The values file

The canonical copy is `deploy/kubernetes/single/values.yaml` in the
repository.

```yaml
# deploy/kubernetes/single/values.yaml
deploymentMode: standalone

image:
  tag: ""

config: |
  hosts: {
  	self: {
  		address: "127.0.0.1"
  		check: {type: "icmp", host: "127.0.0.1"}
  	}
  }

apiToken: ""

standalone:
  persistence:
    enabled: true
    size: 1Gi
  livestatus:
    enabled: false
```

Replace `config` with your own hosts before installing, and `apiToken`
with a real token if you want the command API to require one.

## 4. Start

```sh
helm install jaque oci://<registry>/jaque/charts/jaque --version <chart version> \
  -f deploy/kubernetes/single/values.yaml
```

## 5. Verify

```sh
kubectl exec deploy/jaque -- /jaque version
kubectl port-forward svc/jaque 8080:8080
curl http://localhost:8080/status.json
```

The dashboard is at `http://localhost:8080/` once the port-forward is
up.

## 6. Where things live

Config is the `config` value, mounted as a ConfigMap at
`/etc/jaque/config.cue`. State (the event log) is the PVC
`standalone.persistence` creates, mounted at `/data`. Logs go to
`kubectl logs deploy/jaque`.

## 7. Upgrade

```sh
helm upgrade jaque oci://<registry>/jaque/charts/jaque --version <chart version> \
  -f deploy/kubernetes/single/values.yaml
```

Leave `image.tag` empty so the chart and the binary it deploys stay the
same release; the PVC survives the upgrade.

## 8. Next steps

[CUE in practice](https://jaque.sh/docs/config/cue-in-practice.md) adds services and
contacts to `config`. [Contacts and
policies](../../notifications/contacts-and-policies.md) wires a hard
state to a person. [Metrics](https://jaque.sh/docs/observability/metrics.md) is what
`/metrics` on the same Service exposes, and the dashboard it describes
at the bottom of that page.

## 9. Security considerations

Without `standalone.persistence.enabled`, a restart starts the
projections over from an empty log. `ui.ingress.tls` (split mode's
knob) is the chart's only TLS termination; without it, and without an
authenticating proxy in front of the port-forward or a Service you
expose further, the dashboard, `/metrics` and any exposed Livestatus
port are unauthenticated. See [Kubernetes](https://jaque.sh/docs/deployment/kubernetes.md), section
7, and [Security](https://jaque.sh/docs/deployment/security.md).
