Prepare the application
Nerdit supports a suppliedDockerfile, Python projects with requirements.txt or pyproject.toml, and Node projects with package.json. A Dockerfile takes precedence. Node uses npm ci when a lockfile is present and npm install otherwise; provide a start script or explicit start command. For Python, set the actual command instead of relying on the default uvicorn main:app fallback.
nerdit.toml
main:app, install Uvicorn, and implement /health. Bind to 0.0.0.0 inside the container. Use a stable DNS-label application name.
Preview and deploy
--wait exits 0 when the requested generation converges, 1 for failure or supersession, and 3 on timeout. A timeout alone does not mean the build failed:
Deploy from Git or the store
Git runs on the Engine machine and must be installed there. Use an HTTPS repository on a host permitted by the Engine’s Git allowlist:--subdir when the deployable application lives in a subdirectory. For a private repository, pass a secret reference with --token-ref, never a credential embedded in the Git URL. Linked GitHub App deployment is an account integration; follow the App flow for its repository access.
TEMPLATE_ID from the returned catalog and inspect its prerequisites before deploying it.
Update or roll back
For a folder deployment, repeat the folder command. For an application whose source is recorded as Git:Understand cutover and migrations
When the proxy is available and the application uses no GPUs, eligible redeploys start a candidate container alongside the previous version and switch routing after readiness. A failed candidate leaves the previous version serving. Proxy-disabled, GPU, model, and database workloads do not use that same cutover path. Both application generations can touch the same persistent volumes during cutover. Make writes and schema changes compatible with that overlap. Setcutover = false under [deploy] if the application cannot tolerate it.
An optional release command runs before promotion: