Installation

helm install vexil deploy/helm/vexil \
  -n vexil-system --create-namespace

This deploys all components: operator, API server, web dashboard, and PostgreSQL.

Verify the installation

kubectl get pods -n vexil-system

You should see:

NAME                               READY   STATUS    RESTARTS   AGE
vexil-apiserver-xxx                1/1     Running   0          30s
vexil-operator-xxx                 1/1     Running   0          30s
vexil-postgresql-0                 1/1     Running   0          30s
vexil-web-xxx                      1/1     Running   0          30s

Access the Dashboard

Forward the web service port:

kubectl port-forward svc/vexil-web 3000:3000 -n vexil-system

Open http://localhost:3000 in your browser.

Docker Compose (No Kubernetes)

For trying Vexil without a cluster:

git clone https://github.com/xavimf87/vexil.git
cd vexil
docker compose up --build

This starts:

  • PostgreSQL on localhost:5432
  • API Server on localhost:8090
  • Web Dashboard on localhost:3001

Local Development

For building from source:

# Terminal 1: API server
make run-apiserver

# Terminal 2: Operator (requires kubeconfig)
make run-operator

# Terminal 3: Web dashboard
make run-web

Development with Kubernetes (Docker Desktop / kind / minikube)

A values-dev.yaml is provided for local development with images built locally:

# Build all images
make docker-build

# Install with dev values (pullPolicy: Never, tag: latest, password: admin)
make helm-install

This uses imagePullPolicy: Never so Kubernetes uses your local Docker images directly.

To rebuild and redeploy after code changes:

make redeploy

Build and Push Images

For deploying to a cluster with a container registry:

# Build all images
make docker-build

# Push to registry
make docker-push

Override image names:

make docker-build \
  IMG_OPERATOR=my-registry/vexil-operator:v0.1.0 \
  IMG_APISERVER=my-registry/vexil-apiserver:v0.1.0 \
  IMG_WEB=my-registry/vexil-web:v0.1.0

Raw Manifests (Without Helm)

# Install CRDs
make install

# Deploy operator, RBAC, and API server
make deploy

# Apply sample flags
make sample

Uninstall

# Helm
make helm-uninstall

# CRDs are preserved by default. To remove them:
make uninstall

Back to top

Vexil Platform © 2026. Apache-2.0 License.