# Prerequisites

{% hint style="danger" %}
**Community Edition is not for production workloads.** Use it for labs, evaluation, and learning only.
{% endhint %}

## Quick Start Checklist

Use this if you want the minimum viable lab setup.

* [ ] CE Host: [Ubuntu 22.04](https://cloud-images.ubuntu.com/releases/jammy/release/) or [24.04](https://cloud-images.ubuntu.com/releases/noble/release/) VM with 8 CPUs, 32GB RAM, 100GB disk
* [ ] Hypervisor host: [Ubuntu 22.04](https://cloud-images.ubuntu.com/releases/jammy/release/) or [24.04](https://cloud-images.ubuntu.com/releases/noble/release/) VM with 8 CPUs, 16GB RAM, 100GB disk
* [ ] Both systems can reach the internet
* [ ] You can access both via SSH
* [ ] Install CE from the CE host (see [Install](/private-cloud-director/getting-started/getting-started-with-community-edition/install.md))

```bash
curl -sfL https://go.pcd.run | bash
```

## Detailed Prerequisites

Community Edition (CE) uses two system types:

* **CE host**: runs the control plane and web UI.
* **Hypervisor hosts**: run your VMs.

### Community Edition Host (CE Host)

This host runs the <code class="expression">space.vars.product\_name</code> control plane and web interface.

#### Operating system

* **Supported:** Ubuntu [22.04](https://cloud-images.ubuntu.com/releases/jammy/release/) or [24.04](https://cloud-images.ubuntu.com/releases/noble/release/) AMD64 cloud image
* **Not supported:** Minimal cloud image (missing required packages, such as `crontab`)
* **Other distributions:** Not supported by the installer

#### Sizing

* **CPU:** 8 logical CPUs
* **RAM:** 28GB minimum, 32GB recommended
* **Disk:** 100GB minimum, SSD recommended
* **CPU architecture:** Intel Nehalem / AMD Bulldozer or newer (x86-64-v2)

#### Network

* **Internet access**
* **IPv6:** Must be enabled (doesn't need an address)
* **Swap:** Must be disabled

```bash
sudo swapoff -a
```

* **Firewalld:** Must be stopped and disabled (if installed)

```bash
# Stop the firewalld service
sudo systemctl stop firewalld
# Prevent it from starting on boot
sudo systemctl disable firewalld
```

<details>

<summary>Ports and outbound access</summary>

**Ports open locally (CE host):**

* 443, 2379, 2380, 3306, 4194, 5395, 5672, 5673, 6264, 8023, 8158, 8285, 8558, 9080, 10250, 10255

**Outbound access:**

* TCP 53, 443
* UDP 53, 123

</details>

### Hypervisor Hosts

These hosts run your actual VMs.

#### Operating system

* **Supported:** Ubuntu [22.04](https://cloud-images.ubuntu.com/releases/jammy/release/) or [24.04](https://cloud-images.ubuntu.com/releases/noble/release/) AMD64 cloud image
* **Not supported:** Minimal cloud image (missing required packages, such as `crontab`)
* **Other distributions:** Not supported by the installer

#### Sizing

* **CPU:** 8 logical minimum, 16+ recommended
* **RAM:** 16GB minimum, 32GB+ recommended
* **Disk:** 100GB minimum, 200GB+ recommended (shared storage is better)

#### Nested virtualization (if hypervisors are VMs)

If your hypervisor hosts run as VMs, nested virtualization must be enabled.

**VMware vSphere**

* Enable nested virtualization in VM settings for hypervisor hosts
* Allocate at least 100GB thin-provisioned disk
* Enable promiscuous mode & forged transmits on the vSwitch to allow nested VMs hosted by a hypervisor VM to access the external network

**Proxmox**

* Enable CPU type "host" or "kvm64"
* Enable nested virtualization

{% hint style="info" %}
If hypervisor hosts are running as VMs, nested virtualization must be enabled and visible to the hypervisor host operating system.
{% endhint %}

#### Nested virtualization check

```bash
# Run this on the hypervisor host
egrep "svm|vmx" /proc/cpuinfo

# Should show output with vmx (Intel) or svm (AMD) flags
# No output = nested virtualization not enabled
```

### Storage Backend

You need shared storage for persistent VM disks and live migration. Ephemeral disks work without shared storage and are stored locally on each hypervisor host.

Options:

1. **NFS (Easiest for Testing)**
   * Minimum: 100GB+ of NFS exports
   * Best for: Lab environments, proof-of-concept
   * Performance: Good for testing, adequate for light workloads
2. **External Storage Array**
   * Minimum: Depends on your needs
   * Best for: dev/test environments, extended proof-of-concept
   * Performance: Excellent
3. **Local Storage**
   * Uses hypervisor local disk
   * Best for: Ephemeral VMs, temporary workloads
   * Limitation: VMs can't live migrate

See [Storage Overview](/private-cloud-director/storage/storage-overview.md) for detailed configuration.

### Network Requirements

#### Default Kubernetes CIDRs

* Services: `10.21.0.0/16`
* Pods: `10.20.0.0/16`

{% hint style="info" %}
**Check for conflicts:** If your network uses these ranges, see [Custom Installation](/private-cloud-director/getting-started/getting-started-with-community-edition/custom-installation.md) to change them BEFORE installing.
{% endhint %}

#### Required external URLs

The CE installer must reach these endpoints. If you’re behind a firewall, whitelist them.

* `go.pcd.run` - Installer script
* `quay.io`, `registry.k8s.io` - Container images
* `github.com` - Software downloads
* [Complete list](/private-cloud-director/getting-started/getting-started-with-community-edition/common-issues.md#required-ports-and-external-urls) of required ports and URLs


---

# Agent Instructions: 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:

```
GET https://docs.platform9.com/private-cloud-director/getting-started/getting-started-with-community-edition/prerequisites.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
