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)
| Goal | Path |
|---|---|
| Ship stack (easiest) | ./scripts/ship USER@HOST |
| Local eval with containers | make 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 VMs | fabricctl apply -f config.yaml |
| Terraform | terraform-provider/ |
| K8s operator (CRDs → API) | operator/ |
| Ansible | ansible/ |
| Dev on a laptop | QUICKSTART.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