timbal build or Docker workflow — you push code to a connected git repo and deploy from the platform.
Prerequisites
- A project scaffolded with
timbal create - Code pushed to a git remote the platform can access (typically GitHub)
- Timbal CLI installed (
timbal configurefor local credentials if needed) - The project tested locally with
timbal start
How deployment works
Each platform project maps to a git repository. Environments map to git branches (e.g.main → production, staging → staging). When you deploy an environment, the platform:
- Checks out the requested git rev (branch)
- Reads each
workforce/<name>/timbal.yamlmanifest - Builds and runs the UI, API, and every workforce member as separate deployable units
- Routes traffic through a shared gateway (
proj-env-<env_id>.deployments.timbal.ai)
Connect the repo on the platform
In the Timbal Platform, create a project linked to that repository. Create environments for the branches you want to deploy (production, staging, etc.).
Configure secrets
Add environment variables and secrets in the platform dashboard — model API keys, integration tokens, anything sensitive. These are injected at runtime and are not baked into your repo.Reference them in code with standard env var names (e.g.
OPENAI_API_KEY).Deploy
Trigger a deploy for the target environment from the platform UI (or via the Deploy API). The platform deploys the git rev for that environment’s branch.Deployments are idempotent on the same rev. Re-deploy after pushing new commits to pick up changes.
timbal.yaml manifest
Every workforce member needs a timbal.yaml. timbal create generates one automatically — do not remove the _id or _type fields.
workforce/<name>/timbal.yaml
| Field | Purpose |
|---|---|
_id | Stable manifest UUID — used for routing, logs, and deployment identity |
_type | agent or workflow |
fqn | Import spec for the Python runnable (file.py::object) |
build.system_packages | Ubuntu packages installed during platform build |
build.run | Shell commands run after dependency install |
timbal add — each gets its own directory and manifest.
Accessing a deployed project
Once live, the environment gateway exposes:- UI at the environment root
- API at
/api/... - Workforce at
/api/workforce/<member>/...(proxied to each member’s HTTP server)
Monitoring and logs
The platform dashboard provides:- Deployment status per component (UI, API, workforce members)
- Runtime logs filtered by component
- Resource usage and deploy history