CellarCellar
Client API

Run the gateway

Start cellar-gateway and use the HTTP JSON API

On each node that should serve HTTP (typically every manager, optionally workers):

sudo systemctl enable --now cellar-gateway
# or manually:
cellar-gateway --listen :8080 --data-dir /var/lib/cellar
# optional: --upstreams 192.0.2.10:17946,192.0.2.11:17946

The gateway loads the cluster CA from --data-dir. Managers dial their advertise address; workers dial their stored manager_addr plus any rediscovered manager_addrs from heartbeats/join. Override with --upstreams for an explicit multi-manager list.

Health endpoints

No auth:

PathMeaning
/healthzProcess is up
/readyzCan reach a manager SandboxAPI

HTTP API

All require Authorization: Bearer cellar_… or X-Api-Key:

MethodPathNotes
POST/v1/sandboxescreate
GET/v1/sandboxeslist
GET/v1/sandboxes/:idget
DELETE/v1/sandboxes/:idremove
POST/v1/sandboxes/:id/stopstop
PUT/v1/sandboxes/:id/networkupdate network policy
GET/v1/sandboxes/:id/logsNDJSON stream (follow, tail, timestamps query params)
POST/v1/sandboxes/:id/exec{"command":[…]} → collected stdout/stderr/exitCode

On this page