DeployGroveDocumentationOpen dashboard

Prepare your app

Check repository files, runtime health, secrets, data, and the steps to deploy an app on DeployGrove.

Prepare the repository

  1. Choose one of the five managed stacks. Place its manifest, lockfile, and app entry at the repository root as shown in the stack guide.
  2. Commit the branch you plan to deploy. DeployGrove reads Git, not uncommitted files on your computer.
  3. Remove prohibited files from the whole checkout, including unused Docker or Compose examples. Keep credentials out of Git.
  4. Use registry dependencies with a locked dependency set. Git, URL, and unsupported local workspace dependencies are rejected.
  5. Test the app in production mode. Node.js, Bun, and Python must listen on port 8080 on all interfaces and serve a successful response at / without login.

Set up data and secrets

Use project Environment variables for runtime secrets. Secret values are not passed into managed builds; do not make the build depend on a private runtime credential. Build containers use a controlled network path, so do not assume access to a private registry or your own database.

For a database or cache, add a private service and set the app connection values. Use the service hostname shown in Credentials, not localhost. Choose Persistent SQLite if the app uses a local database. Plan uploads, schema migrations, and backups before launch; app-image files do not retain writes across redeploys.

Create, deploy, and verify

  1. Open Projects → New project → Source repository. Enter the HTTPS Git URL, branch, and a read token for a private repo.
  2. Choose or confirm the managed runtime. Set its framework, document root, entry file, or Python app module as needed.
  3. Save the project, add services and runtime values, then select Deploy.
  4. Read the build log. Wait for a running deployment. If it fails, fix the first failed phase and deploy again.
  5. Point DNS to the project target and complete the TLS setup. Run Check domain & TLS. These checks warn; a running release alone does not prove HTTPS works.
  6. Open the domain. Test login, assets, app routes, database reads and writes, and any upload flow.

For later releases, push to the selected branch and deploy again. Push-to-deploy needs a configured, signed provider webhook. Rollback can start a retained prior image for Node.js, Python, Bun, and static sites. PHP needs a new deployment. Neither method reverses database changes.

Ready to release? Follow the deploy steps and account setup.