> For the complete documentation index, see [llms.txt](https://docs.carto.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.carto.com/carto-self-hosted/planning/deployment-methods.md).

# Deployment Methods

CARTO Self-Hosted can run on a variety of platforms using a set of Docker images. The available deployment methods vary in complexity and scalability. There is no better or preferred method; it depends on your needs.

This section presents each deployment method, helps you decide which one fits your team, and points you to the matching deployment guide.

* [**Choosing a deployment method**](/carto-self-hosted/planning/deployment-methods/choosing-a-deployment-method.md) — decide which method fits your team and infrastructure
* [**Single Virtual Machine deployment**](/carto-self-hosted/planning/deployment-methods/single-vm.md) — the simplest method (Kots), ideal for evaluation and small-scale deployments
* [**Standard Orchestrated container deployment**](/carto-self-hosted/planning/deployment-methods/kubernetes-kots.md) — UI-managed (Kots) production deployments on Kubernetes
* [**Advanced Orchestrated container deployment**](/carto-self-hosted/planning/deployment-methods/kubernetes-helm.md) — fully customizable (Helm) production deployments on Kubernetes

## Deployment methods at a glance

|                   | Single Virtual Machine  | Standard Orchestrated  | Advanced Orchestrated |
| ----------------- | ----------------------- | ---------------------- | --------------------- |
| **Complexity**    | Low                     | Medium                 | High                  |
| **Scalability**   | Limited                 | High                   | High                  |
| **Customization** | Basic                   | Moderate               | Full                  |
| **Management UI** | Admin Console           | Admin Console          | CLI only              |
| **Best for**      | Evaluation, small-scale | Production, UI-managed | Production, advanced  |

## Managing Kubernetes: Kots and Helm

[**KOTS**](https://kots.io/) (Kubernetes Off-The-Shelf) and [**Helm**](https://helm.sh/) are both tools for managing Kubernetes deployments, but they serve different purposes depending on ease of use and customization requirements:

* **KOTS** focuses on simplifying the deployment of pre-packaged Kubernetes applications, particularly for self-hosted environments. It includes features like built-in admin consoles, automated updates, and configuration management aimed at non-expert Kubernetes users.\
  \
  KOTS simplifies deploying CARTO Self-hosted by providing an **Admin Console** with key features such as:
  * **Updates** can be applied with a single click, streamlining maintenance.
  * Configuration changes are managed through a **user-friendly UI** with built-in versioning, ensuring easy tracking and rollbacks.
  * **Support bundles** can be generated instantly, simplifying troubleshooting.
  * Additionally, **license** synchronization is automated, reducing manual overhead and ensuring compliance effortlessly.
* **Helm** is a package manager for Kubernetes, allowing users to define, install, and upgrade applications using charts (pre-configured Kubernetes resources). It excels at templating and managing app lifecycles in a declarative manner.\
  Helm provides full control over advanced customizations of the CARTO Self-hosted deployment, allowing users to tailor deployments beyond the options available in the KOTS UI, making it ideal for complex, highly specific configurations.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.carto.com/carto-self-hosted/planning/deployment-methods.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
