Skip to content

Local Setup

Learn how to set up and run DCM on your local machine.

Prerequisites

  • Podman and podman-compose installed
  • Go (for building the CLI)
  • (Optional) A Kubernetes cluster with KubeVirt for the kubevirt-service-provider

Quick Start

Clone the control-plane repository and start the core platform (postgres, nats, control-plane, and dcm-ui):

git clone https://github.com/dcm-project/control-plane.git
cd control-plane/deploy
podman-compose up -d

The control-plane API is available at http://localhost:8080. The DCM UI is at http://localhost:7007.

Running with the KubeVirt Service Provider

The kubevirt-service-provider is behind a compose profile and does not start by default. To include it, set the required environment variables and activate the kubevirt profile:

export KUBERNETES_NAMESPACE=vms
export KUBEVIRT_KUBECONFIG="/path/to/kubeconfig"
podman-compose --profile kubevirt up -d

Note: The namespace set in KUBERNETES_NAMESPACE must already exist in your Kubernetes cluster.

Verifying the Deployment

Check that all services are running:

podman-compose ps

Check the health endpoint:

curl http://localhost:8080/api/v1alpha1/health

If you deployed with the KubeVirt provider, you can also list the registered providers:

curl http://localhost:8080/api/v1alpha1/providers

Setting Up the CLI

The DCM CLI (dcm) lets you interact with the DCM control plane from the command line. Clone the cli repository and build the binary:

git clone https://github.com/dcm-project/cli.git
cd cli
make build

The binary will be available at bin/dcm. You can move it to a directory in your PATH:

sudo cp bin/dcm /usr/local/bin/

By default, the CLI connects to the control plane at http://localhost:8080. You can verify it’s working with:

dcm version