Who this page is for
Operators who want one of:- Worker-only self-hosting — keep using the hosted control plane at
api.usezombie.com, but run the worker inside your own network (homelab, on-prem, air-gapped). The “never hand over the kubeconfig” narrative on the Homelab Zombie page is this mode. - Full self-hosting — run the control plane + worker on your own infrastructure. Today this requires running the
zombiedZig binary directly; see Architecture for the component map.
What ships today
| Component | Today | Roadmap |
|---|---|---|
| Local dev data-plane | docker compose up at the repo root brings up Postgres + Redis only. | Unchanged — the compose file is for local dev, not production. |
| Control plane (API + executor) | Zig binaries. make up builds and runs them against the local compose infra. For production, see API server, Executor. | Single-container production image. |
| Worker | zombied worker binary as a systemd service on OVHCloud bare-metal. Configured via /opt/zombie/.env. See Worker for the canonical procedure. | usezombie/worker:latest Docker image, bootstrap token via zombiectl worker token, suitable for homelab placement. |
| Worker auth | Configured manually in the .env EnvironmentFile on the worker machine. | zombiectl worker token lifecycle (mint, rotate, revoke) driven by the CLI. |
Provisioning credentials works today
Regardless of how your worker is deployed,zombiectl credential add + the tenant vault are stable today:
op, vault, gcloud secrets, aws secretsmanager, even a pass entry. The --value flag reads once, encrypts immediately, and drops the plaintext.
Environment variables work too, as a fallback:
TRIGGER.md:
get, describe, logs, top; never delete or secrets”) lives as prose in the zombie’s SKILL.md, not in structured YAML — see Homelab Zombie for the pattern.
Once the worker is reachable
With a worker online (via whichever deployment model you’re running), everything from the hosted Quickstart works identically:--cursor <next_cursor>, printed at the end of a truncated response.
What’s next
Architecture
Component map, ports, process boundaries. Start here for full self-hosting.
Worker deployment
The canonical systemd-on-bare-metal procedure that production uses today.
API server
Running the control-plane API binary.
Executor
The sandbox sidecar that owns run lifecycle.
Security posture
Sandbox details, credential firewall, worker isolation.
Zombie lifecycle
The commands you’ll run day-to-day against your self-hosted stack.