> ## 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.

# Deployment strategies

> Choose the right deployment strategy for Midaz under BYOC — Kubernetes with Helm, Terraform foundations, and infrastructure prerequisites.

This section covers deployment strategies for running Midaz in your own infrastructure under the **BYOC (Bring Your Own Cloud)** model. If you're using the **SaaS** model, Lerian manages deployment for you — skip ahead to [Getting started](/en/getting-started) to begin configuring your platform.

<Note>
  Not sure which model fits? See [Deployment models](/en/deployment-models) for a full comparison of SaaS and BYOC.
</Note>

Set up your environment, meet the prerequisites, and follow our best practices to ensure a secure, scalable, and reliable setup.

<Tip>
  Before you deploy, check out the [Midaz Architecture Overview](/en/midaz/architecture). Understanding how the components work together will help you make informed decisions during setup.
</Tip>

### Content

In this section, you will find:

* [Midaz Terraform Foundation](/en/midaz/midaz-terraform-foundation): Ready-made Terraform examples for provisioning the cloud infrastructure Midaz runs on — AWS, GCP, or Azure.

For Kubernetes deployment, configuration, and lifecycle management via Helm, see the dedicated [Helm documentation](/en/platform/helm/helm-overview) in the Platform section.

## Deployment strategies

***

You manage the infrastructure in both Midaz modules, Community and Enterprise. We strongly recommend using Kubernetes with our Helm Charts. This approach simplifies deployment and scaling, especially if using the Enterprise edition, which includes support and modular microservices.

That said, you can choose the deployment strategy that fits your needs.

### Deploying with Kubernetes

We recommend our official Helm Charts. They offer a fast and flexible way to install Midaz in a Kubernetes environment.

You can either plug Midaz into your existing databases and services or use the default components provided in the Helm chart. This setup adapts to different infrastructure needs and supports production-grade deployments.

For a step-by-step guide, check the [Deploying using Helm](/en/platform/helm/midaz/midaz-installation) documentation.

### Self-managed deployment

If you prefer full control, you can deploy Midaz manually. Midaz includes a Docker configuration, which makes local or small-scale setups straightforward.

You can also adapt it to your own infrastructure, whether you're using a different orchestrator or running directly on virtual machines or bare metal.

For instructions, check the [Installing Midaz](/en/midaz/midaz-setup) page.

## Platform requirements

***

The default Helm configuration meets these minimums, except for RabbitMQ. Its bundled subchart installs server 3.13.6. Midaz targets RabbitMQ 4.x for development and tests, so that subchart runs below the target. If you bring your own infrastructure components, make sure you meet the minimum supported versions:

| Service        | Minimum Supported Version | Notes                                                                 |
| :------------- | :------------------------ | :-------------------------------------------------------------------- |
| Kubernetes     | 1.20+                     | 1.30+ recommended                                                     |
| Helm CLI       | 3.8+                      | Required for OCI registry                                             |
| PostgreSQL     | 16.3                      | Primary database                                                      |
| MongoDB        | 8.x                       | Document storage (Helm chart: bitnami/mongodb 16.4.0+)                |
| RabbitMQ       | 4.x                       | Message broker (Helm chart: rabbitmq subchart 2.1.11 → server 3.13.6) |
| Valkey         | 8.x                       | In-memory cache (Redis fork)                                          |
| OTEL Collector | 2.2.1                     | Optional, for observability                                           |

Midaz needs these minimum versions for a stable, performant platform. For the complete compatibility matrix, see [Version compatibility](/en/platform/helm/helm-version-compatibility).

## Best practices

***

### Access to the infrastructure

* Use **least privilege** policies when connecting to databases.
* Block direct access to databases by default. Only allow it in exceptional cases with approval.
* Store secrets securely using tools like **HashiCorp Vault**.
* Use dedicated tools for safe access to production data.

### Redundancy and high availability

* Enable **replication and backups** for both Midaz and your databases.
* Use **load balancers** to route traffic across services evenly.

### Network security

* Run your services inside **VPCs** to isolate critical components.
* Use **NAT gateways or proxies** for outbound connections.
* Apply **security groups or firewall rules** to restrict access to required ports and IPs.

### Data persistence and storage

* Use **replicated databases** to support high availability and recovery.
* Choose **scalable storage solutions** that match your data growth.
* Use **Valkey** (Redis fork) for caching and background message management.

### Observability

* Integrate tools that monitor logs, traces, and metrics.
* Midaz supports observability through **OpenTelemetry**, making detecting and resolving issues easier.

## Shared responsibilities

***

Under the BYOC model, Lerian and your team share responsibility for running Midaz. For a detailed breakdown of who secures what — including how responsibilities differ between BYOC and SaaS — see the [Security](/en/midaz/security) page.

<Tip>
  For actionable guidance on securing your environment before deployment, check the [Security Recommendations](/en/midaz/security-recommendations) documentation.
</Tip>
