Local Setup
Learn how to set up and run DCM on your local machine.
Prerequisites
- Podman and
podman-composeinstalled - Go (for building the CLI)
- (Optional) A Kubernetes cluster with KubeVirt for the kubevirt-service-provider
Quick Start
Clone the control-plane repository, prepare the environment file, 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
cp .env.example .envTo use the m2 release images, add the following to your .env file:
CONTROL_PLANE_VERSION=m2
ENVIRONMENT_AGENT_VERSION=m2
DCM_UI_VERSION=m2Then start the stack:
podman-compose up -dThe control-plane API is available at http://localhost:8080. The DCM UI is at
http://localhost:7007.
Authentication is disabled by default on this stack. To require login and JWT bearer tokens, see Authentication.
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 -dNote: The namespace set in
KUBERNETES_NAMESPACEmust already exist in your Kubernetes cluster.
Verifying the Deployment
Check that all services are running:
podman-compose psCheck the health endpoint:
curl http://localhost:8080/api/v1alpha1/healthIf you deployed with the KubeVirt provider, you can also list registered environment agents (when authentication is disabled):
curl http://localhost:8080/api/v1alpha1/agentsWhen authentication is enabled, add Authorization: Bearer <token> to API
calls. See Authentication.
Note: This is the control plane’s own auth for the
/agentsendpoint. The environment agent process itself has separate, independent authentication for its own API and for its calls back to the control plane — see Environment Agent Authentication.
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 buildThe 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