Skip to main content

Getting started

Install, start the daemon, pick a deploy path and verify it. Back to the README.

Quick start​

git clone https://github.com/zyvorai/fabric.git && cd fabric
make build && sudo make install

# Start the daemon (systemd optional)
sudo zyvor-fabricd
# or: sudo systemctl enable --now zyvor-fabricd

# CLI
fabricctl list
fabricctl create web-01 --image fedora-41 --cpus 2 --memory 4096 --tenant acme

# Web UI → https://localhost:9095 (console at /app; Create VM has optional Tenant)
GoalPath
Ship stack (easiest)./scripts/ship USER@HOST
Local eval with containersmake docker-up → docs/DOCKER.md
Bare-metal remote host./scripts/deploy remote USER@HOST
Kubernetes (k3s lab / Helm)./scripts/deploy k8s USER@HOST → docs/KUBERNETES.md
AI inference (Beta)Tutorial 15 · docs/ai-workloads.md · console /app/ai
Keep (open agent workstation)Tutorial 16 · Tutorial 17 · docs/keep/KEEP.md · ./scripts/keep-live-lab.sh · console /keep · Pages · ./scripts/keepctl
Declarative VMsfabricctl apply -f config.yaml
Terraformterraform-provider/
K8s operator (CRDs → API)operator/
Ansibleansible/
Dev on a laptopQUICKSTART.md

Default ports: 9095 (API + UI), 7788 (FluxVM on localhost).

Verify after start:

curl -sf http://127.0.0.1:9095/health
curl -sf http://127.0.0.1:9095/readyz | jq '{ok, store, fluxvm_ok: .fluxvm.ok}'
curl -sf http://127.0.0.1:7788/readyz | jq .
# Multi-tenant: fabricctl create … --tenant acme; JWT tenant claim scopes list/get/mutate
# When FluxVM auth is on: set driver.fluxvm_token in zyvor-fabricd.toml