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

# Reporter via Helm

> Deploy Reporter on Kubernetes with the reporter-helm chart, including its manager and worker workloads, its bundled dependencies, and its required secrets.

Reporter generates financial reports, regulatory filings, and custom data exports from Midaz ledger data. It runs a manager and a worker so that report generation scales apart from the API. The chart name is `reporter-helm`.

## What the chart installs

***

The chart installs two workloads:

* **Manager**: the API service that stores templates and orchestrates report generation. It gets a Deployment, a Service, a ConfigMap, a Secret, a ServiceAccount, a ClusterRole, a HorizontalPodAutoscaler, a PodDisruptionBudget, and an optional Ingress.
* **Worker**: the background processor that renders the reports. It runs as a KEDA ScaledJob and scales on the queue depth.

The manager publishes a job to RabbitMQ. The worker consumes it, reads the ledger data, renders the document, and writes the result to object storage.

The chart bundles KEDA, an S3-compatible object store, MongoDB, RabbitMQ, and Valkey, and it enables each of them by default. Disable any of them to use an externally managed service instead. Set `keda.external: true` when a KEDA operator already runs in the cluster.

## Prerequisites

***

* A running Midaz deployment with reachable API endpoints and a readable database replica.
* A storage class that supports dynamic provisioning, for MongoDB, RabbitMQ, and the object store.
* Helm 3.8 or later for OCI registry support.

## Install

***

Read the current chart version first, then install:

```bash theme={null}
helm show chart oci://registry-1.docker.io/lerianstudio/reporter-helm
```

```bash theme={null}
helm install reporter oci://registry-1.docker.io/lerianstudio/reporter-helm \
  --version <version> -n reporter --create-namespace -f my-values.yaml
```

## Values you must set

***

Set these keys under the top-level `secrets` block, or supply your own Secret:

| Key                                                            | Purpose                                                                                                                          |
| :------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------- |
| `RABBITMQ_DEFAULT_PASS`                                        | The broker password. The bundled RabbitMQ reads it from this Secret.                                                             |
| `RABBITMQ_ERLANG_COOKIE`                                       | The Erlang cookie for the bundled broker. Keep it stable: a changed value breaks the cluster on upgrade.                         |
| `DATASOURCE_ONBOARDING_PASSWORD`                               | The password for the Midaz database that the reports read.                                                                       |
| `OBJECT_STORAGE_ACCESS_KEY_ID` and `OBJECT_STORAGE_SECRET_KEY` | Access to the bucket that holds the generated reports.                                                                           |
| `DATASOURCE_CRED_ENC_KEY`                                      | Encrypts the stored datasource credentials. Use a hex-encoded 16, 24, or 32-byte key. The chart refuses the shipped placeholder. |
| `APP_ENC_KEY`                                                  | The application encryption key. Use a base64-encoded 32-byte key.                                                                |

Leave `MONGO_PASSWORD` empty while the bundled MongoDB subchart is enabled. The subchart generates the password into its own Secret, and the services read it from there.

## Upgrade and uninstall

***

```bash theme={null}
helm upgrade reporter oci://registry-1.docker.io/lerianstudio/reporter-helm \
  --version <new-version> -n reporter -f my-values.yaml
```

```bash theme={null}
helm uninstall reporter -n reporter
```

Uninstalling removes the Kubernetes resources. It leaves the PersistentVolumeClaims and the generated reports in place. Delete them separately when you want to reclaim the storage.

## Resources

***

* [Reporter documentation](/en/products/reporter/what-is-reporter)
* [Check a chart before you deploy](/en/platform/deploy/helm-version-compatibility)
* [Helm chart repository](https://github.com/LerianStudio/helm)
