:::meta author=Docs-Team updated=2026-09-03 tags=deploys,build,zip,config
:::
:::breadcrumb Docs > User Guide > Deploys
:::
:::reading-time
:::
A deploy is a versioned build of your service: the code zip or database configuration, a name, a version, and the runtime config that shapes how the container runs. Services can hold any number of deploys, and exactly one of them is selected as the one that starts. This page covers creating deploys for apps and databases, the config builder, and managing existing deploys.
:::toc
:::
The create form
The Deploys tab opens with the Create deploy form (chip New). The header shows the platform inherited from the service's plan — e.g. react · app — which decides the form's shape. Common fields:
• Name — at least 4 characters; availability is checked as you type.
• Version — free text to label the build, shown on the deploy card as v<version>.
Application deploys
App deploys upload a .zip source package — the Choose .zip button — and configure the runtime with the config builder below. After choosing a zip, Inspect & suggest config reads the archive, detects the framework (Django, Flask, Node, Laravel, and more), and returns a banner with the detected platform, framework, server type, and settings module. Apply suggested config fills the builder in one click.
:::steps
• Pick the plan-matched platform card
The platform is fixed by the service's plan; the form only warns when the plan lacks one.
• Choose your .zip
Required for app deploys — the status text shows the chosen file and its size.
• Inspect and apply
Press Inspect & suggest config, review the detected markers, then Apply suggested config.
• Create
Press Create deploy; the new card appears at the top of the deploys list.
:::
[!NOTE] In edit mode the file button reads Replace .zip and is optional — leave it empty to keep the current package and only change configuration.
Database deploys
Database deploys store their credentials in the deploy config. The caption explains the workflow: after changing a running database, call Rebuild to apply — volumes and data are preserved. The form offers:
• Fill automatically — generates a random username, password, and database name that you can still edit.
• username / password / root password / database / port fields; in edit mode, password placeholders read "Leave empty to keep current".
• Extra env (JSON object) — additional environment variables for the container.
Validation is platform-aware: MySQL/MariaDB requires a root password, PostgreSQL requires a password, MongoDB requires username and password, and Oracle requires a password. Any mistake surfaces as a snackbar with the exact rule.
The config builder
The builder serializes your choices into the deploy's JSON config — "Configure only what you need. Everything else stays automatic." It opens with a platform-specific title (e.g. Django runtime, React build, Laravel runtime) and groups everything into accordions: