> 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/prerequisites/hardware-requirements.md).

# Hardware & Software Requirements

Hardware and software requirements for CARTO Self-Hosted by deployment method

The hardware and software requirements below must be met to ensure optimal performance of the CARTO platform. Requirements differ by [deployment method](/carto-self-hosted/planning/deployment-methods.md).

## Recommended background

Before proceeding with the installation, it is recommended that the individual performing the setup is familiar with the environment CARTO will run in — a cloud provider such as [GCP](https://cloud.google.com/) (Google Cloud Platform), [AWS](https://aws.amazon.com/) (Amazon Web Services) or [Azure](https://azure.microsoft.com/) (Microsoft Azure), a sovereign or regional cloud, or on-premises infrastructure. This prior experience ensures a smoother deployment process and a better understanding of the underlying infrastructure.

1. **Cloud Platform Proficiency:** Basic proficiency in the chosen cloud platform is recommended. This includes the ability to navigate the respective console, manage instances or clusters, and configure networking settings.
2. **Account Authorization:** Ensure that you have the necessary permissions and access rights within your cloud platform account. This typically involves appropriate role assignments.
3. **Resource Understanding:** A grasp of fundamental concepts such as virtual machines, Kubernetes, storage, and networking within your chosen cloud environment will enhance your ability to deploy and manage resources effectively.

Select your deployment method below.

{% tabs %}
{% tab title="Single Virtual Machine" %}
**Operating system**

| Requirement    | Value                                                                                                                                                                                                       |
| -------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| OS             | Ubuntu 22.04, Debian 11, or Red Hat Enterprise Linux (RHEL) 8.10 or above                                                                                                                                   |
| cgroup version | Must boot with **cgroup v2** (`cgroup2fs`). Required by the embedded Kubernetes distribution (k0s) since version 1.35, which refuses to start on cgroup v1 hosts. Check with `stat -fc %T /sys/fs/cgroup/`. |

**CPU, memory and disk**

| Requirement  | AI Features disabled | AI Features enabled |
| ------------ | -------------------- | ------------------- |
| CPU (x86)    | 8                    | 16                  |
| Memory       | 32 GB                | 64 GB               |
| Disk size    | 60 GB                | 60 GB               |
| {% endtab %} |                      |                     |

{% tab title="Orchestrated (Kubernetes — Kots & Helm)" %}
**Cluster**

| Requirement                                 | Value                                                                    |
| ------------------------------------------- | ------------------------------------------------------------------------ |
| Kubernetes                                  | 1.29 or above                                                            |
| [Helm](https://helm.sh/docs/intro/install/) | 3.6.0 or above                                                           |
| Nodes                                       | At least 3 nodes with 4 vCPUs and 16 GB of memory each                   |
| Node type                                   | On-demand (standard) instances. Spot/preemptible VMs are not recommended |
| Namespace                                   | An isolated namespace per CARTO installation                             |

{% hint style="warning" %}
Do not run CARTO on Spot or preemptible VMs (GCP Spot/Preemptible, AWS Spot, Azure Spot). These instances can be reclaimed by the cloud provider at any time, interrupting in-flight requests and long-running operations such as imports or batch geocoding jobs, and causing intermittent connection errors that are hard to diagnose.
{% endhint %}

**Kots only:** persistent volumes must be configured in your cluster, because the Admin Console stores configuration changes in a persistent volume.
{% endtab %}
{% endtabs %}

## Checklist

* [ ] Your deployment method is chosen ([Choosing a deployment method](/carto-self-hosted/planning/deployment-methods/choosing-a-deployment-method.md))
* [ ] Host OS / Kubernetes version meets the minimums above
* [ ] CPU, memory, and disk meet the minimums for your method (and AI features, if enabled)
* [ ] Kubernetes nodes run on on-demand instances, not Spot/preemptible VMs


---

# 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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.carto.com/carto-self-hosted/planning/prerequisites/hardware-requirements.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
