From commit to deployment
Arvumi checks out the configured Git repository, installs dependencies, runs your build, and publishes the resulting static files or supported function artifacts. A deployment records its commit and configuration. Push local changes before deploying: the CLI starts a remote repository build and does not upload your working directory.
GitHub App-connected projects receive automatic push events. Projects using a public HTTPS repository without an App connection can configure a signed GitHub webhook using the instructions in Settings → Deploy Config.
Build settings
Set the application’s root directory, install command, build command, and output directory when creating the project. Build commands run in the selected application root. Static output paths are relative to that root and must remain inside it.
Use reproducible dependency versions and commit your lockfile. For npm projects, a supported lockfile uses npm ci; without one, installation can use npm install and compiler-cache reuse is disabled.
Monorepos
Set Root Directory to your application folder, such as apps/web. Build commands can read sibling packages, but only selected output and function artifacts are deployed.
For npm workspaces, keep workspaces in the root package.json and the lockfile at the repository root. Dependencies install from that root while the build runs in the selected app. Nested lockfiles or intermediate workspace roots are rejected in this profile. Independent nested applications are supported when the repository does not define a root workspace.
Choose the right output
| Application | Deployment approach |
|---|---|
| Static HTML or generated site | Publish the directory containing your HTML, CSS, JavaScript, and assets. |
| Single-page application | Build static output and configure an explicit fallback rewrite for client-side routes. |
| Standalone Node.js or Python | Provide the function manifest and handlers. |
| Next.js | Use the supported Next.js build profile. Arvumi injects its adapter; no separate adapter installation is needed. |
The current Next.js profile is pinned to Next.js 16.3.0, React 19.2.8, and Node.js 22.20.0. It supports App Router rendering and Node.js server functionality; Pages Router page rendering and the Edge Runtime are not supported. Arbitrary framework server output is not automatically a supported runtime. Native Go, Rust, and Hugo build toolchains are not included in the standard build image.
Single-page application routes
Add arvumi.json in your application root to route a client-side section to your built HTML entry point. For example, if your client-side pages live under /dashboard/:
{
"version": 1,
"routing": {
"rewrites": [
{ "source": "/dashboard/:path*", "destination": "/index.html" }
]
}
}
Choose patterns that match your client-side routes and keep asset and API paths outside them. Rewrites run before file lookup: a site-wide /:path* rewrite would also rewrite requests for JavaScript, CSS, and API endpoints. Add rules for the route families your application uses.
Production and previews
The configured production branch builds in the production scope. Other branches use preview or a matching custom environment. Check the environment on the deployment before relying on its variables or database.
Promotion changes which deployment is served. It does not rebuild the application or replace its captured environment variables and database access. To use production configuration, build a deployment in the production environment.
When a build fails
- Open the deployment’s build logs and find the first failing command.
- Check that the branch and commit exist in the remote repository.
- Confirm the root directory, lockfile, build script, and output directory match your repository.
- Check repository access if checkout fails.
- For missing configuration, add variables to the right environment and deploy again.