> This page is for version 3.3.0 (default).
> For other versions, use one of these documentation indexes:
> - 3.3.0 (default): https://docs.nvidia.com/vss/3.3.0/llms.txt
> - Dev: https://docs.nvidia.com/vss/dev/llms.txt

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.nvidia.com/vss/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.nvidia.com/vss/_mcp/server.

# Prerequisites

This section covers the prerequisites for deploying and using the Smart City Blueprint. Prerequisites are organized into common requirements for all deployments, and deployment-specific requirements for Docker Compose.

## Common Prerequisites

These prerequisites are required for Docker Compose deployment.

### Hardware Requirements

The Smart City Blueprint has been validated and tested on the following NVIDIA GPUs:

* NVIDIA H100
* NVIDIA L40S
* NVIDIA RTX PRO 6000 Blackwell

### Minimum System Requirements

* x86-64 architecture
* 18 core CPU (x86 systems)
* 128 GB RAM
* 1 TB SSD
* 1 x 1 Gbps network interface

### Operating System and Base Software

* Ubuntu 24.04
* NGC CLI 4.10.0 or later

### Runtime Environment Settings

The following Linux kernel settings are required:

```bash
# Ensure the sysctl.d directory exists
sudo mkdir -p /etc/sysctl.d

# Write VSS kernel settings to 99-vss.conf (persistent across reboots)
sudo bash -c "printf '%s\n' \
  'net.ipv6.conf.all.disable_ipv6 = 1' \
  'net.ipv6.conf.default.disable_ipv6 = 1' \
  'net.ipv6.conf.lo.disable_ipv6 = 1' \
  'net.core.rmem_max = 5242880' \
  'net.core.wmem_max = 5242880' \
  'net.ipv4.tcp_rmem = 4096 87380 16777216' \
  'net.ipv4.tcp_wmem = 4096 65536 16777216' \
  > /etc/sysctl.d/99-vss.conf"

# Reload sysctl to apply the new settings
sudo sysctl --system
```

## Docker Compose-Specific Prerequisites

The following prerequisites are required **only** for Docker Compose deployments:

* NVIDIA Driver 595.58.03 on Ubuntu 24.04
* Docker Engine 28.3.3 or later and earlier than 29.5.0
* Docker Compose v2.39.1 or later
* Docker Buildx 0.23.0 (working version), 0.23.0 or later and earlier than 0.35.0
* NVIDIA Container Toolkit 1.17.8 or later

These match the platform-wide requirements in
[Prerequisites](/getting-started/prerequisites); the Smart City Blueprint does not
relax or extend them.

> **Note**
>
> For detailed installation instructions, see the [Appendix](/vision-agent/agent-workflows/industry-specific-examples/smart-city-blueprint/prerequisites#appendix-software-prerequisites-installation-guide):
>
> **Docker Compose deployments:**
>
> * [Install NVIDIA Driver](/vision-agent/agent-workflows/industry-specific-examples/smart-city-blueprint/prerequisites#install-nvidia-driver)
> * [Install Docker](/vision-agent/agent-workflows/industry-specific-examples/smart-city-blueprint/prerequisites#install-docker)
> * [Configure Docker](/vision-agent/agent-workflows/industry-specific-examples/smart-city-blueprint/prerequisites#configure-docker)
> * [Install Docker Buildx](/vision-agent/agent-workflows/industry-specific-examples/smart-city-blueprint/prerequisites#install-docker-buildx)
> * [Install NVIDIA Container Toolkit](/vision-agent/agent-workflows/industry-specific-examples/smart-city-blueprint/prerequisites#install-nvidia-container-toolkit)
>
> **Common software (both deployments):**
>
> * [Install NGC CLI](/vision-agent/agent-workflows/industry-specific-examples/smart-city-blueprint/prerequisites#install-ngc-cli)

## NGC API Key Access

To deploy the Smart City Blueprint, you need an NGC API key with access to the required resources.

### Create an NVIDIA NGC Account

1. Go to [https://ngc.nvidia.com](https://ngc.nvidia.com)
2. Click **Sign up** if you don't have an account, or **Sign in** if you do
3. Complete the registration process with your email address

### Generate an API Key

1. Once logged in, click on your username in the top right corner
2. Select **Setup** from the dropdown menu
3. Navigate to **API Keys** under the **Keys/Secrets** section
4. Click **Generate API Key**
5. Click **Generate Personal Key** (available at both the top-center and top-right of the page)
6. Provide a descriptive name for your API key (e.g., "Smart City Blueprint Development")
7. Select **NGC Catalog** for Key Permissions
8. Click **Generate Personal Key**
9. Copy the generated API key immediately - you won't be able to see it again
10. Store it securely in a password manager or encrypted file

> **Note**
>
> Keep your NGC API key secure and never commit it to version control systems.

### Verify Your NGC Access

To verify your NGC key has the correct permissions:

```bash
# Set your NGC API key
export NGC_CLI_API_KEY='your_ngc_api_key'

# Test access to the required resources
ngc registry resource list "nvidia/vss-smartcities/*"
ngc registry resource list "nvidia/vss-core/*"

# Test access to the required images
ngc registry image list "nvidia/vss-core/*"

# Test access to the required models
ngc registry model list "nvidia/tao/*"
```

If you encounter permission errors, contact NVIDIA support for assistance.

## Google Maps API Key

The Video-Analytics-UI map view functionality requires a Google Maps API key.

You can obtain a Google Maps API key by following the [create API key instructions](https://developers.google.com/maps/documentation/javascript/get-api-key).

> **Note**
>
> For production deployments, ensure you configure appropriate API key restrictions and usage limits.

## Appendix: Software Prerequisites Installation Guide

This appendix provides installation instructions for the software prerequisites. Instructions are organized by common software (required for all deployments) and deployment-specific software.

### Common Software Installation

#### Install NVIDIA Driver

NVIDIA Driver version 595.58.03 is required on Ubuntu 24.04 for Docker Compose deployments.

You can download the driver directly from:
[https://www.nvidia.com/en-us/drivers/details/266021/](https://www.nvidia.com/en-us/drivers/details/266021/)

For detailed installation instructions, refer to the official NVIDIA Driver Installation Guide:
[https://docs.nvidia.com/datacenter/tesla/driver-installation-guide/index.html](https://docs.nvidia.com/datacenter/tesla/driver-installation-guide/index.html)

You can also browse drivers for your specific GPU and platform from the NVIDIA Driver Downloads page:
[https://www.nvidia.com/Download/index.aspx](https://www.nvidia.com/Download/index.aspx)

> **Note**
>
> After installation, verify the driver is correctly installed by running `nvidia-smi` to confirm the driver version and GPU detection.

> **Note**
>
> **NVIDIA Fabric Manager Requirement**
>
> NVIDIA Fabric Manager is required on systems with multiple GPUs that are connected using NVLink or NVSwitch technology. This typically applies to:
>
> * Multi-GPU systems with NVLink bridges (e.g., DGX systems, HGX platforms)
> * Systems with NVSwitch fabric interconnects
> * Hosts running NVIDIA H100, A100, V100, or other datacenter GPUs with NVLink
>
> Fabric Manager is **not required** for:
>
> * Single GPU systems
> * Multi-GPU systems without NVLink/NVSwitch (PCIe-only configurations)
>
> For installation instructions, refer to the official NVIDIA Fabric Manager documentation:
>
> * Installation Guide: [https://docs.nvidia.com/datacenter/tesla/fabric-manager-user-guide/index.html](https://docs.nvidia.com/datacenter/tesla/fabric-manager-user-guide/index.html)
>
> Verify Fabric Manager status after installation:
>
> ```bash
> sudo systemctl status nvidia-fabricmanager
> ```

#### Install NGC CLI

NGC CLI version 4.10.0 or later is required to download blueprints and authenticate with NGC resources.

**Download and install NGC CLI:**

For ARM64 Linux:

```bash
curl -sLo "/tmp/ngccli.zip" https://api.ngc.nvidia.com/v2/resources/nvidia/ngc-apps/ngc_cli/versions/4.10.0/files/ngccli_arm64.zip
```

For AMD64 Linux:

```bash
curl -sLo "/tmp/ngccli.zip" https://api.ngc.nvidia.com/v2/resources/nvidia/ngc-apps/ngc_cli/versions/4.10.0/files/ngccli_linux.zip
```

After downloading, install NGC CLI:

```bash
sudo mkdir -p /usr/local/bin
sudo unzip -qo /tmp/ngccli.zip -d /usr/local/lib
sudo chmod +x /usr/local/lib/ngc-cli/ngc
sudo ln -sfn /usr/local/lib/ngc-cli/ngc /usr/local/bin/ngc
```

**Verify installation:**

```bash
ngc --version
```

**Configure NGC CLI with your API key:**

```bash
ngc config set
```

When prompted, enter your NGC API key. For information on obtaining an NGC API key, see the [NGC API Key Access](/vision-agent/agent-workflows/industry-specific-examples/smart-city-blueprint/prerequisites#ngc-api-key-access) section.

> **Note**
>
> For the latest version of NGC CLI, visit the NGC CLI downloads page: [https://ngc.nvidia.com/setup/installers/cli](https://ngc.nvidia.com/setup/installers/cli)

### Docker Compose Software Installation

These installation instructions are **only** required for Docker Compose deployments.

#### Install Docker

Docker Engine 28.3.3 or later and earlier than 29.5.0 is required. Follow the guide here for installing Docker: [https://docs.docker.com/engine/install/ubuntu/](https://docs.docker.com/engine/install/ubuntu/)

> **Note**
>
> Do not install Docker via `snap`. The snap-packaged Docker runs inside a confined sandbox with restricted filesystem access, which can perform differently in the deployment process. Install Docker using the official Docker apt repository as linked above.

After installation, complete the Linux post-installation steps so that Docker can run without sudo. See [Linux post-installation steps for Docker Engine](https://docs.docker.com/engine/install/linux-postinstall/).

#### Configure Docker

After installing Docker, you must configure it to use the cgroupfs cgroup driver.

**Edit the Docker daemon configuration file:**

Add or verify the following entry in `/etc/docker/daemon.json`:

```json
"exec-opts": ["native.cgroupdriver=cgroupfs"]
```

This configuration must be included within the JSON object. For example:

```json
{
    "exec-opts": ["native.cgroupdriver=cgroupfs"]
}
```

If your `/etc/docker/daemon.json` already contains other settings, ensure this entry is added to the existing configuration.

**Apply the configuration:**

After editing the daemon configuration, restart Docker to apply the changes:

```bash
sudo systemctl daemon-reload
sudo systemctl restart docker
```

> **Note**
>
> Restarting Docker will temporarily stop all running containers. Plan accordingly if you have containers running.

#### Install Docker Compose

Docker Compose v2.39.1 or later is required. Docker Compose v2 is typically installed as a plugin with modern Docker installations.

**Verify if Docker Compose is already installed:**

```bash
docker compose version
```

**If not installed, install Docker Compose plugin:**

```bash
sudo apt update
sudo apt install docker-compose-plugin
```

**Verify installation:**

```bash
docker compose version
```

> **Note**
>
> Docker Compose v2 uses the command `docker compose` (without hyphen) instead of the older `docker-compose` command.

#### Install Docker Buildx

Buildx version 0.23.0 or later and earlier than 0.35.0 is required. Version 0.23.0 is the known working version.

**Check if Docker Buildx is already installed and meets the version range:**

```bash
docker buildx version
```

If the version is missing, older than 0.23.0, or 0.35.0 or newer, install working version 0.23.0. The command selects the binary for the host architecture (`x86_64` or `aarch64`):

```bash
case "$(uname -m)" in
  x86_64) BUILDX_ARCH=amd64 ;;
  aarch64|arm64) BUILDX_ARCH=arm64 ;;
  *) echo "Unsupported architecture: $(uname -m)" >&2; exit 1 ;;
esac

sudo mkdir -p /usr/local/lib/docker/cli-plugins
sudo curl -fSL "https://github.com/docker/buildx/releases/download/v0.23.0/buildx-v0.23.0.linux-${BUILDX_ARCH}" \
  -o /usr/local/lib/docker/cli-plugins/docker-buildx
sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-buildx
```

**Verify installation:**

```bash
docker buildx version
```

#### Install NVIDIA Container Toolkit

The NVIDIA Container Toolkit is required to run the NVIDIA containers. Follow the guide here for installing the NVIDIA Container Toolkit: [https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html)

> **Note**
>
> This blueprint uses NodePort services for external access to application endpoints.