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

# Self-Host with Kubernetes

This section outlines the necessary steps to run Dittofeed with Kubernetes. Dittofeed provides a helm chart to make it easy to deploy Dittofeed to a Kubernetes cluster.

## Helm Chart

View the dittofeed helm chart `dittofeed/dittofeed/helm-charts/dittofeed`: [here](https://github.com/dittofeed/dittofeed/tree/main/helm-charts/dittofeed)

```bash theme={null}
# Clone the Dittofeed repository
git clone git@github.com:dittofeed/dittofeed.git
```

### Sample Values

The following example values deploy dittofeed with all of its relevant dependencies built-in, including postgres, clickhouse, temporal.

```bash theme={null}
helm upgrade --install demo ./dittofeed/helm-charts/dittofeed \
  -f dittofeed-values.yaml \
  --atomic --wait
```

```yaml dittofeed-values.yaml theme={null}
temporal:
  enabled: true
  env:
    - name: POSTGRES_SEEDS
      value: "demo-postgresql.default.svc.cluster.local"
    - name: POSTGRES_USER
      value: "postgres"
    - name: POSTGRES_PWD
      value: "password"

postgresql:
  enabled: true

clickhouse:
  enabled: true

env:
  # assuming your are in the default namespace
  - name: DATABASE_HOST
    value: "demo-postgresql.default.svc.cluster.local"
  - name: DATABASE_USER
    value: "postgres"
  - name: DATABASE_PASSWORD
    value: "password"
  - name: CLICKHOUSE_HOST
    value: "http://demo-clickhouse.default.svc.cluster.local:8123"
  - name: CLICKHOUSE_USER
    value: "dittofeed"
  - name: CLICKHOUSE_PASSWORD
    value: "password"
  - name: TEMPORAL_ADDRESS
    value: "demo-dittofeed-temporal:80"
```

### Parameters

| Key                                          | Default Value                                                                                                                                                                                                                                                                                                                                                                                                                                        | Description                                             |
| -------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------- |
| `workspaceName`                              | `Dittofeed`                                                                                                                                                                                                                                                                                                                                                                                                                                          | The name of the workspace.                              |
| `replicaCount`                               | `1`                                                                                                                                                                                                                                                                                                                                                                                                                                                  | Number of replicas.                                     |
| `maxOldSpaceSize`                            | `412`                                                                                                                                                                                                                                                                                                                                                                                                                                                | Maximum old space size for the JVM.                     |
| `image.repository`                           | `dittofeed/dittofeed-lite`                                                                                                                                                                                                                                                                                                                                                                                                                           | Docker image repository.                                |
| `image.pullPolicy`                           | `IfNotPresent`                                                                                                                                                                                                                                                                                                                                                                                                                                       | Image pull policy.                                      |
| `image.tag`                                  | `""`                                                                                                                                                                                                                                                                                                                                                                                                                                                 | Image tag to use, defaults to the chart appVersion.     |
| `imagePullSecrets`                           | `[]`                                                                                                                                                                                                                                                                                                                                                                                                                                                 | Secrets for image pulling.                              |
| `nameOverride`                               | `""`                                                                                                                                                                                                                                                                                                                                                                                                                                                 | Name override.                                          |
| `fullnameOverride`                           | `""`                                                                                                                                                                                                                                                                                                                                                                                                                                                 | Full name override.                                     |
| `serviceAccount.create`                      | `true`                                                                                                                                                                                                                                                                                                                                                                                                                                               | Whether to create a service account.                    |
| `serviceAccount.automount`                   | `true`                                                                                                                                                                                                                                                                                                                                                                                                                                               | Automatically mount a ServiceAccount's API credentials. |
| `serviceAccount.annotations`                 | `{}`                                                                                                                                                                                                                                                                                                                                                                                                                                                 | Annotations for the service account.                    |
| `serviceAccount.name`                        | `""`                                                                                                                                                                                                                                                                                                                                                                                                                                                 | Name of the service account to use.                     |
| `podAnnotations`                             | `{}`                                                                                                                                                                                                                                                                                                                                                                                                                                                 | Annotations for the pod.                                |
| `podLabels`                                  | `{}`                                                                                                                                                                                                                                                                                                                                                                                                                                                 | Labels for the pod.                                     |
| `podSecurityContext`                         | `{}`                                                                                                                                                                                                                                                                                                                                                                                                                                                 | Security context for the pod.                           |
| `securityContext`                            | `{}`                                                                                                                                                                                                                                                                                                                                                                                                                                                 | Security context for the container.                     |
| `service.type`                               | `ClusterIP`                                                                                                                                                                                                                                                                                                                                                                                                                                          | Service type.                                           |
| `service.port`                               | `80`                                                                                                                                                                                                                                                                                                                                                                                                                                                 | Service port.                                           |
| `ingress.enabled`                            | `false`                                                                                                                                                                                                                                                                                                                                                                                                                                              | Enable ingress.                                         |
| `ingress.className`                          | `""`                                                                                                                                                                                                                                                                                                                                                                                                                                                 | Ingress class name.                                     |
| `ingress.annotations`                        | `{}`                                                                                                                                                                                                                                                                                                                                                                                                                                                 | Annotations for ingress.                                |
| `ingress.hosts`                              | `[ { host: "chart-example.local", paths: [ { path: "/", pathType: "ImplementationSpecific" } ] } ]`                                                                                                                                                                                                                                                                                                                                                  | Hosts configuration for ingress.                        |
| `ingress.tls`                                | `[]`                                                                                                                                                                                                                                                                                                                                                                                                                                                 | TLS configuration for ingress.                          |
| `resources.limits.cpu`                       | `1`                                                                                                                                                                                                                                                                                                                                                                                                                                                  | CPU limits for the container.                           |
| `resources.limits.memory`                    | `512Mi`                                                                                                                                                                                                                                                                                                                                                                                                                                              | Memory limits for the container.                        |
| `resources.requests.cpu`                     | `1`                                                                                                                                                                                                                                                                                                                                                                                                                                                  | CPU requests for the container.                         |
| `resources.requests.memory`                  | `512Mi`                                                                                                                                                                                                                                                                                                                                                                                                                                              | Memory requests for the container.                      |
| `clickhouse.enabled`                         | `false`                                                                                                                                                                                                                                                                                                                                                                                                                                              | Enable ClickHouse installation.                         |
| `clickhouse.shards`                          | `1`                                                                                                                                                                                                                                                                                                                                                                                                                                                  | Number of ClickHouse shards.                            |
| `clickhouse.resources.limits.memory`         | `1024Mi`                                                                                                                                                                                                                                                                                                                                                                                                                                             | Memory limits for ClickHouse.                           |
| `clickhouse.resources.requests.memory`       | `1024Mi`                                                                                                                                                                                                                                                                                                                                                                                                                                             | Memory requests for ClickHouse.                         |
| `clickhouse.zookeeper.enabled`               | `false`                                                                                                                                                                                                                                                                                                                                                                                                                                              | Enable Zookeeper for ClickHouse.                        |
| `clickhouse.keeper.enabled`                  | `true`                                                                                                                                                                                                                                                                                                                                                                                                                                               | Enable Keeper for ClickHouse.                           |
| `clickhouse.auth.username`                   | `dittofeed`                                                                                                                                                                                                                                                                                                                                                                                                                                          | ClickHouse username.                                    |
| `clickhouse.auth.password`                   | `password`                                                                                                                                                                                                                                                                                                                                                                                                                                           | ClickHouse password.                                    |
| `clickhouse.auth.database`                   | `dittofeed`                                                                                                                                                                                                                                                                                                                                                                                                                                          | ClickHouse database.                                    |
| `clickhouse.auth.existingSecret`             | `""`                                                                                                                                                                                                                                                                                                                                                                                                                                                 | Existing secret for ClickHouse password.                |
| `clickhouse.auth.existingSecretKey`          | `""`                                                                                                                                                                                                                                                                                                                                                                                                                                                 | Key for ClickHouse password in existing secret.         |
| `postgresql.enabled`                         | `false`                                                                                                                                                                                                                                                                                                                                                                                                                                              | Enable PostgreSQL installation.                         |
| `postgresql.auth.username`                   | `postgres`                                                                                                                                                                                                                                                                                                                                                                                                                                           | PostgreSQL username.                                    |
| `postgresql.auth.password`                   | `password`                                                                                                                                                                                                                                                                                                                                                                                                                                           | PostgreSQL password.                                    |
| `postgresql.auth.database`                   | `dittofeed`                                                                                                                                                                                                                                                                                                                                                                                                                                          | PostgreSQL database.                                    |
| `postgresql.auth.existingSecret`             | `""`                                                                                                                                                                                                                                                                                                                                                                                                                                                 | Existing secret for PostgreSQL password.                |
| `postgresql.auth.userPasswordKey`            | `""`                                                                                                                                                                                                                                                                                                                                                                                                                                                 | Key for PostgreSQL password in existing secret.         |
| `temporal.enabled`                           | `false`                                                                                                                                                                                                                                                                                                                                                                                                                                              | Enable standalone Temporal installation.                |
| `temporal.resources`                         | `{}`                                                                                                                                                                                                                                                                                                                                                                                                                                                 | Resources for Temporal.                                 |
| `temporal.env`                               | `[ { name: POSTGRES_SEEDS, value: "dittofeed-postgresql.default.svc.cluster.local" }, { name: POSTGRES_USER, value: "postgres" }, { name: POSTGRES_PWD, value: "password" } ]`                                                                                                                                                                                                                                                                       | Environment variables for Temporal.                     |
| `temporal.image.repository`                  | `temporalio/auto-setup`                                                                                                                                                                                                                                                                                                                                                                                                                              | Docker image repository for Temporal.                   |
| `temporal.image.tag`                         | `1.23.1.0`                                                                                                                                                                                                                                                                                                                                                                                                                                           | Image tag for Temporal.                                 |
| `temporal.image.pullPolicy`                  | `IfNotPresent`                                                                                                                                                                                                                                                                                                                                                                                                                                       | Image pull policy for Temporal.                         |
| `env`                                        | `[ { name: DATABASE_HOST, value: "dittofeed-postgresql.default.svc.cluster.local" }, { name: DATABASE_USER, value: "postgres" }, { name: DATABASE_PASSWORD, value: "password" }, { name: CLICKHOUSE_HOST, value: "http://dittofeed-clickhouse.default.svc.cluster.local:8123" }, { name: CLICKHOUSE_USER, value: "dittofeed" }, { name: CLICKHOUSE_PASSWORD, value: "password" }, { name: TEMPORAL_ADDRESS, value: "demo-dittofeed-temporal:80" } ]` | Environment variables for the application.              |
| `autoscaling.enabled`                        | `false`                                                                                                                                                                                                                                                                                                                                                                                                                                              | Enable autoscaling.                                     |
| `autoscaling.minReplicas`                    | `1`                                                                                                                                                                                                                                                                                                                                                                                                                                                  | Minimum number of replicas for autoscaling.             |
| `autoscaling.maxReplicas`                    | `100`                                                                                                                                                                                                                                                                                                                                                                                                                                                | Maximum number of replicas for autoscaling.             |
| `autoscaling.targetCPUUtilizationPercentage` | `80`                                                                                                                                                                                                                                                                                                                                                                                                                                                 | Target CPU utilization percentage for autoscaling.      |
| `nodeSelector`                               | `{}`                                                                                                                                                                                                                                                                                                                                                                                                                                                 | Node selector for pod scheduling.                       |
| `tolerations`                                | `[]`                                                                                                                                                                                                                                                                                                                                                                                                                                                 | Tolerations for pod scheduling.                         |
| `affinity`                                   | `{}`                                                                                                                                                                                                                                                                                                                                                                                                                                                 | Affinity rules for pod scheduling.                      |
