# Kubernetes

Deploy Quor with Helm

import DeploymentNextSteps from "/snippets/deployment-next-steps.mdx"

<Tip>
  Check out our [Resourcing Guide](/deployment/getting_started/resourcing) before getting started.
</Tip>

## Guide

The Quor Helm chart packages all the required services (API, web, PostgreSQL, Vespa, etc.) into a single deployment.
By default, persistent volumes will be created for stateful services (e.g. PostgreSQL, Vespa).

<Steps>
  <Step title="Add the Quor Helm repository">
    ```bash
    helm repo add onyx https://onyx-dot-app.github.io/onyx/
    helm repo update
    helm search repo onyx
    ```
  </Step>

  <Step title="Install Quor">
    Install into its own namespace (recommended):

    ```bash
    kubectl create namespace onyx
    helm install onyx onyx/onyx -n onyx
    ```

    This will pull the latest Quor chart and deploy all dependencies.
  </Step>

  <Step title="Verify the installation">
    ```bash
    helm list -n onyx
    kubectl get pods -n onyx
    ```

    Wait until all pods are in a `Running` state before accessing Quor.
  </Step>

  <Step title="Access Quor">
    By default, the chart exposes Quor via a Kubernetes Service. For local testing, you can port-forward:

    ```bash
    kubectl -n onyx port-forward service/onyx-nginx 8080:80
    ```

    Then open [http://localhost:8080](http://localhost:8080).
  </Step>

  <Step title="Configure Quor">
    Configure your deployment by modifying the `values.yaml` file in the `onyx/deployment/helm/charts/onyx` directory.

    You'll need to restart Quor after changing any `values.yaml` variables.

    ```bash
    helm upgrade onyx onyx/onyx -n onyx -f deployment/helm/charts/onyx/values.yaml
    ```
  </Step>
</Steps>

See the [Helm chart README](https://github.com/onyx-dot-app/onyx/tree/main/deployment/helm)
for advanced options such as running as non-root and testing with Kind.

## Enabling Quor Sandbox

Sandbox adds per-user sandbox pods, scoped RBAC, NetworkPolicies, an egress proxy,
and a Scheduled Task worker to the Helm deployment.

<Card title="Deploy Sandbox on Kubernetes" icon="dharmachakra" href="/deployment/local/craft_kubernetes">
  Prepare sandbox nodes and authentication, configure Helm, plan capacity, and verify the runtime.
</Card>

<DeploymentNextSteps />
