Deploy from a branch. Run everything it needs in one place.
ZStack turns a GitHub repo into Fly deployments. Each deployment holds its servers, workers, databases, volumes and domains. Logs, shell, files and the database are one tab away.
Sign-in uses your Zerg account. An administrator must allow your email or domain first.
What you do in ZStack
Ship a branch
- Connect a GitHub repo. Each deployment follows one branch.
- A push that touches the deployment’s paths queues a deploy. Its log streams live.
- Restart, suspend or roll back to an earlier deploy from the toolbar.
- Attach a custom domain with its Fly certificate. ZStack writes the DNS records, or hands ZTC the exact records to add.
Attach what it needs
- Add servers, workers, Postgres, Redis and volumes as units of a deployment.
- ZStack provisions managed Fly Postgres and Upstash Redis and stores their credentials encrypted.
- Set env vars per deployment. Values are write-only: the list shows names, never values.
Operate it
- Open a shell, browse files and query the database from the browser.
- Telemetry collects provider logs, metrics and errors for each deployment.
- Machines lists each provider machine and volume with its cost.
- Press z to ask Zerg about the page you are on.
The same controls from a terminal
The zstack CLI covers workspaces, deploys, units, domains, the database, files and the shell. People sign in with Zerg. Agents use API tokens limited to one workspace and a set of scopes.
Sprites give agents persistent remote machines with checkpoints, so a workspace can start from a clean, known state.
terminal
$ zstack auth login # sign in with Zerg in the browser $ zstack workspace show ca-org $ zstack env deploy --id <env> --follow # deploy and stream the log $ zstack database query … $ zstack shell --env <env> # interactive runtime shell $ zstack auth token create --name agent \ --workspace ca-org --scope deploy:write # scoped token for an agent
Open your workspaces
You continue at zergai.com. ZStack never sees your Zerg password.