Local Development Setup
vibeD uses Podman + Kind for local development. This guide sets up a complete environment.
One-Command Setup
make dev
This creates a Kind cluster, installs Knative Serving with Kourier, and builds vibeD.
Manual Setup
1. Create Kind Cluster
make setup-cluster
This creates a Kind cluster named vibed-dev with port mappings:
- Port 80 → Kourier ingress (for Knative services)
- Port 443 → Kourier ingress (HTTPS)
2. Install Knative Serving
make install-knative
This installs:
- Knative Serving CRDs and core components
- Kourier as the ingress layer (NodePort mode)
- sslip.io DNS for automatic URL resolution
3. Build and Run vibeD
# Build
make build
# Run in HTTP mode (dashboard + MCP endpoint)
make run-http
4. Access the Dashboard
Open http://localhost:8080 in your browser. You should see the vibeD dashboard with deployment target status.
Accessing Deployed Artifacts
With sslip.io DNS, artifacts deployed via Knative get URLs like:
http://my-app.default.127.0.0.1.sslip.io
These resolve to 127.0.0.1 and route through the ingress layer on port 80.
Port-Forward Access
If your Kind cluster doesn't expose port 80 to the host (common with Podman), you need to port-forward the ingress service. The command depends on which networking layer you installed:
Kourier:
kubectl port-forward svc/kourier 8081:80 -n kourier-system
Contour (Envoy):
kubectl port-forward svc/envoy 8081:80 -n projectcontour
Then access artifacts by appending the port to the URL:
http://my-app.default.127.0.0.1.sslip.io:8081
If you want to use the default port (so URLs work without :8081), use sudo to bind to port 80:
sudo kubectl port-forward svc/envoy 80:80 -n projectcontour
Accessing the vibeD MCP Endpoint
To connect AI tools (like Claude Desktop) to the vibeD MCP server running in-cluster, port-forward the vibeD service:
kubectl port-forward svc/vibed 9090:8080 -n vibe-system
The MCP endpoint is then available at http://localhost:9090/mcp/. If vibeD is exposed via an HTTPProxy/Ingress (e.g. vibed.127.0.0.1.sslip.io), you can also reach it through the ingress port-forward on port 8081.
DNS Troubleshooting
If your browser shows DNS_PROBE_FINISHED_NXDOMAIN, your router's DNS may not resolve sslip.io domains. Fix by switching to a public DNS resolver:
macOS: System Settings → Network → Wi-Fi → Details → DNS → add 8.8.8.8
Or add entries manually to /etc/hosts:
sudo sh -c 'echo "127.0.0.1 my-app.default.127.0.0.1.sslip.io" >> /etc/hosts'
Teardown
make teardown