Skip to content

Documentation

Everything you need to go from install to production deploy.

Quickstart

Get Voltra running in 3 commands.

1

Install the CLI

terminal
# macOS / Linux
$ curl -fsSL https://get.voltra.dev | sh
# or via npm
$ npm i -g @voltra/cli

Requires Node.js 18+ or runs standalone via the shell installer.

2

Connect your repo

terminal
$ cd your-project
$ voltra init
Authenticated as mara@linear.co
Detected: Next.js 15.1 (App Router)
Created voltra.toml
Connected to GitHub: linear/web

Voltra auto-detects your framework and creates a default pipeline config.

3

Deploy

terminal
$ voltra deploy
Running pipeline: check → build → deploy
✓ lint 2.1s
✓ typecheck 3.4s
✓ test 6.8s (parallel)
✓ build 11.2s (cached: 89%)
✓ deploy 3.9s
https://your-project.voltra.app

First deploy provisions infrastructure. Subsequent deploys are incremental.

CLI reference

voltra init

Initialize a project. Detects framework, creates voltra.toml, connects to your git provider.

--template <name> Use a starter template
--no-detect Skip framework detection
voltra deploy

Run the full pipeline and deploy. Defaults to production branch.

--prod Deploy to production (default on main/master)
--preview Create a preview deployment
--dry-run Validate pipeline without deploying
voltra logs

View deployment and runtime logs.

--tail Stream logs in real-time
--since <time> Show logs since timestamp (e.g., 1h, 30m)
--filter <pattern> Filter log lines by regex
voltra secrets

Manage environment secrets. Encrypted at rest, injected at build time.

set KEY=value Set a secret
list List all secret keys (values redacted)
rm KEY Remove a secret
voltra rollback

Instantly revert to the previous deployment. Atomic switch, zero downtime.

--to <deploy-id> Rollback to a specific deployment

Configuration

Voltra uses voltra.toml at your project root. Here's a full example:

voltra.toml
# voltra.toml — full configuration reference
[project]
name = "my-app"
framework = "nextjs" # auto-detected if omitted
node_version = "20" # or specify in .nvmrc
[cache]
strategy = "content-hash" # default | content-hash | none
paths = ["node_modules", ".next/cache", ".turbo"]
ttl = "7d"
share_across_branches = true
[[step]]
name = "install"
command = "pnpm install --frozen-lockfile"
[[step]]
name = "lint"
command = "eslint . --max-warnings 0"
[[step]]
name = "test"
command = "vitest run --coverage"
[[step]]
name = "build"
command = "next build"
needs = ["lint", "test"]
[deploy]
provider = "voltra" # voltra | vercel | cloudflare | aws
region = "us-east-1"
[notifications]
slack = "#deploys"
on = ["success", "failure"]

Environment-specific overrides

Override any configuration key per environment. Voltra merges the base config with environment-specific values.

voltra.toml
[env.staging]
[env.staging.deploy]
provider = "voltra"
region = "eu-west-1"
[env.production]
[env.production.deploy]
provider = "aws"
region = "us-east-1"

Monorepo support

Voltra detects changed packages and only rebuilds affected apps. Cross-app caching works automatically.

voltra.toml
# voltra.toml (monorepo root)
[monorepo]
manager = "turborepo" # turborepo | nx | pnpm
[[app]]
name = "web"
path = "apps/web"
framework = "nextjs"
[[app]]
name = "api"
path = "apps/api"
framework = "hono"

Ready to try it?

Install the CLI and deploy your first project.

Get started