Create a project
Choose a deployment source, inspect its plan, answer open questions, and start the first release.
Open Deployments → New project. Choose one source, inspect what the dashboard found, complete the steps it could not answer, and review the plan before deployment. The setup is remembered while you visit other pages. Unfinished setups beside the question lists earlier setups you can resume or discard. Inspecting a different source discards the setup you leave, and an expired setup cannot be resumed.
Choose a source
| Source | Choose it when | What to check |
|---|---|---|
| Git repository | The application, or the Compose file that describes it, is in a repository. | Repository and credential, branch or tag, root directory, detected framework, build and start commands, submodules or Git LFS when needed. |
| Docker | An image is in a registry or already on this server, or a Compose stack's files are here. | Image reference or digest, registry credential, the application port, persistent mounts. For a stack, its services, mounts, and ports. |
| Template | The application is in the reviewed catalogue. | The card's first-sign-in note, required inputs, storage, and whether the card says Preview only. |
| Database | You want a database server running here, without an application. | Engine and version, resource limits, and whether its port is published beyond this server. |
The Git repository tab lists the repositories a connected GitHub App or the dashboard's GitHub CLI sign-in can reach, and shows which identity each comes from. Select a row to import it, or use Or paste a Git URL with any HTTPS or SSH clone URL and press Import. Clone options applies submodules and Git LFS to every import from the tab.
The Docker tab lists the Compose stacks whose files are on this server and the images already pulled here. Select a row to use it alone, or tick several images and press Deploy n images together to make one Compose project with a service for each. Pull from a registry takes any other image reference; a tag is resolved to an immutable digest during inspection.
The Database tab uses the same catalogue as the main Databases page. It starts the server, saves its connection, and shows its connection string with Open in Databases; it does not create a deployment project. A new database answers on this server only unless you turn on publishing its port on every interface. To give an application a database, use Add database on the application's Variables step instead. See database connections.
Compose projects start from a Compose file in a Git repository or from a stack already on this server. Pasting or uploading a Compose file is not offered. Projects created in an earlier release from an existing container or Compose stack are read-only and their runs fail without running; manage those workloads in Docker.
Saved Git, SSH, registry, and provider credentials live under Deployments → Credentials, which administrators can open. A credential in use by a project cannot be removed there.
Inspect and decide
- Choose a source. Inspection reads repository and image metadata without running repository code on the host. A repository with several likely applications offers its candidates under Choose the detected candidate.
- Follow the step the dashboard opens. An unknown port opens Runtime; a required variable with no value opens Variables; a project name already in use, or a detection decision, opens Project. Detected answers are filled in, and you can change any of them.
- Check the rail beside the form, What this setup will create: source, build, container, address, health check, resources, storage, environment, and the server's checks. Select a row to open the fields that decide it. Add storage, a database, more hostnames, or a release task when the application needs them.
- Open Review. Fix every item that stops the deploy, and tick each warning you accept. Review also lists Data it keeps, Secrets made on this server, Before it takes traffic, and At the cutover, so you can see which mounts survive a release and whether replacement can interrupt traffic.
- Press Deploy to create the project and start its first run, or Save only to create it without a run. The run opens so you can watch its steps and build logs.
Review checks the plan against this server when you arrive and again after a change. The deployment run verifies the source revision it builds; if the branch moved since inspection, Review says so and offers Inspect again. A failed check stays visible with the field or page that fixes it.
Git source details
The dashboard detects JavaScript and TypeScript, Python, Go, Rust, Java and Kotlin, Scala, Clojure, .NET, Deno, PHP, Ruby, Elixir, Dart, Gleam, site generators such as Hugo, static sites, Dockerfiles, and Compose files from repository evidence. Detection supplies a candidate and editable build and runtime fields. It can find variable names in example files and source reads and suggest a matching database. When a reviewed template or an image of the same application exists, Project offers it beside the source. Add a persistent volume yourself when the application writes a SQLite file, uploads, keys, or other data that must outlive a release. Detection cannot reliably decide every application's start command, port, migration, or external credential; Review calls these out.
For a monorepo, select the actual root directory. A repository may contain examples, documentation, workers, or several services. If detection selects the wrong candidate, choose another before deploying. A Compose file in a repository is deployed as a Compose project; it is not built as an ordinary web application.
Automatic Git deployment is decided on Review under Automatic deployment. New commits to the branch deploy after the first successful deployment unless you turn off Deploy new commits automatically. You can change this later in Settings → General → Automatic deployment. See automation and preview approvals.
When the first run finishes
Open Overview to find the live address and readings. A reviewed template has a First sign-in card (How to connect for a client-only service) with the way its application creates or supplies an account; showing a generated credential is an audited administrator action. Deployments shows the release timeline and each run. Runtime shows the containers, mounts, domains, and dependencies. If a website cannot appear in the embedded preview because of its own frame policy, use Visit to open it directly.
To start another project from this one's settings, choose Duplicate project… from the project's menu. The copy takes the source, build and runtime settings, and variable names and scopes; it starts without secret values, domains, or storage volume names, and opens as a new setup to review before deploying.