Prepare your app
Check repository files, runtime health, secrets, data, and the steps to deploy an app on DeployGrove.
Prepare the repository
- Choose one of the five managed stacks. Place its manifest, lockfile, and app entry at the repository root as shown in the stack guide.
- Commit the branch you plan to deploy. DeployGrove reads Git, not uncommitted files on your computer.
- Remove prohibited files from the whole checkout, including unused Docker or Compose examples. Keep credentials out of Git.
- Use registry dependencies with a locked dependency set. Git, URL, and unsupported local workspace dependencies are rejected.
- 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
- Open Projects → New project → Source repository. Enter the HTTPS Git URL, branch, and a read token for a private repo.
- Choose or confirm the managed runtime. Set its framework, document root, entry file, or Python app module as needed.
- Save the project, add services and runtime values, then select Deploy.
- Read the build log. Wait for a running deployment. If it fails, fix the first failed phase and deploy again.
- 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.
- 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.