docs
Configuração

Frameworks e Linguagens

Todas as linguagens e frameworks suportados pela Veloz — detecção automática via Nixpacks.

A Veloz usa Nixpacks para detectar seu framework e linguagem automaticamente. Não precisa configurar nada — basta rodar veloz deploy.

Se o seu projeto tem requisitos complexos de build, você pode usar um nixpacks.toml para personalizar ou até um Dockerfile próprio — veja Nixpacks vs Dockerfile.

Linguagens suportadas

A Veloz suporta 25+ linguagens via Nixpacks. Cada uma é detectada automaticamente pelo arquivo de projeto (package.json, go.mod, Cargo.toml, etc).

Tier 1 — Detecção automática completa

Linguagem Arquivo detectado Build Start
Node.js package.json npm run build npm start
Python requirements.txt, pyproject.toml, Pipfile pip install python main.py / gunicorn
Go go.mod go build binário compilado
Rust Cargo.toml cargo build --release binário compilado
Java pom.xml (Maven) / build.gradle (Gradle) mvn package / gradle build java -jar
Ruby Gemfile bundle install rails server / ruby app.rb
PHP composer.json composer install php -S 0.0.0.0:80
Elixir mix.exs mix release binário compilado
.NET / C# *.csproj / *.sln dotnet publish dotnet run
Deno deno.json / deno.jsonc deno run
Static Files index.html (sem outro projeto) Caddy

Tier 2 — Suportado via Nixpacks

Linguagem Arquivo detectado
F# *.fsproj
Dart / Flutter pubspec.yaml
Scala build.sbt
Haskell stack.yaml / *.cabal
Crystal shard.yml
Clojure project.clj / deps.edn
Zig build.zig
Swift Package.swift
Gleam gleam.toml
Scheme arquivos .scm
COBOL arquivos .cob / .cbl

Tier 3 — Via nixpacks.toml

Qualquer linguagem pode ser configurada manualmente com um nixpacks.toml na raiz do projeto:

[phases.setup]
nixPkgs = ["lua5_4", "nodejs_22"]
 
[phases.build]
cmds = ["make build"]
 
[start]
cmd = "lua main.lua"

Frameworks Node.js

Aplicações Web (SSR)

Frameworks que rodam um servidor em produção.

Framework Dependência detectada Build Start Porta
Next.js next npm run build npm start 3000
Nuxt nuxt npm run build npm start 3000
Remix @remix-run/node npm run build npm start 3000
SvelteKit @sveltejs/kit npm run build npm start 3000
NestJS @nestjs/core npm run build npm run start:prod 3000
Express express node index.js 3000
Fastify fastify node index.js 3000
Hono hono node index.js 3000

Sites Estáticos (SPA / SSG)

Frameworks que geram arquivos estáticos no build. Servidos automaticamente via Caddy.

Framework Dependência detectada Build Output
Vite + React vite + react npm run build dist
Vite + Vue vite + vue npm run build dist
Vite + Svelte vite + svelte npm run build dist
Vite vite npm run build dist
Astro astro npm run build dist
Gatsby gatsby npm run build public
Create React App react-scripts npm run build build
Angular @angular/core npm run build dist

Node.js genérico

Se nenhum framework específico for detectado mas existirem scripts build ou start no package.json, a Veloz trata como um projeto Node.js genérico:

  • Com script startServiço Web (porta 3000)
  • Sem script startSite Estático (output dist)

Frameworks Python

Framework Detecção Start padrão
Django django em requirements gunicorn project.wsgi
Flask flask em requirements gunicorn app:app
FastAPI fastapi em requirements uvicorn main:app --host 0.0.0.0 --port 3000

Frameworks PHP

Framework Detecção Start padrão
Laravel laravel/framework php artisan serve --port 3000
Symfony symfony/framework-bundle php -S 0.0.0.0:3000 -t public
PHP puro composer.json php -S 0.0.0.0:3000 -t public

Frameworks Ruby

Framework Detecção Start padrão
Rails rails gem rails server -p 3000
Sinatra sinatra gem ruby app.rb

Frameworks Elixir

Framework Detecção Start padrão
Phoenix phoenix em mix.exs Mix release binary
Elixir mix.exs Mix release binary

Como funciona a detecção

  1. Nixpacks analisa os arquivos do projeto (package.json, go.mod, Cargo.toml, etc)
  2. Identifica a linguagem e framework automaticamente
  3. Gera um Dockerfile otimizado com as dependências corretas
  4. Build e start commands são configurados automaticamente

Ordem de prioridade (Node.js)

Se seu projeto tem múltiplas dependências (ex: next + express), a Veloz usa o primeiro match na lista. Next.js tem prioridade sobre Express.

Package managers

A Veloz detecta o package manager pelo lockfile:

Arquivo Package Manager
bun.lockb ou bun.lock Bun
pnpm-lock.yaml pnpm
yarn.lock Yarn
package-lock.json npm

Os comandos de build e start são adaptados automaticamente:

# npm
npm run build && npm start
 
# pnpm
pnpm run build && pnpm start
 
# yarn
yarn build && yarn start
 
# bun
bun run build && bun run start

Customizando

Se a detecção automática não funcionar para o seu caso, você pode definir os comandos manualmente:

Via CLI

veloz config set --build-command "npm run build:custom" --start-command "node server.js" --port 8080

Via veloz.json

{
  "services": {
    ".": {
      "build": {
        "command": "npm run build:custom"
      },
      "runtime": {
        "command": "node server.js",
        "port": 8080
      }
    }
  }
}

Via nixpacks.toml

Para linguagens que não são Node.js, ou configurações avançadas:

[phases.setup]
nixPkgs = ["python311", "poetry"]
 
[phases.build]
cmds = ["poetry install", "python manage.py collectstatic"]
 
[start]
cmd = "gunicorn myapp.wsgi:application --bind 0.0.0.0:3000"

No primeiro deploy

Se você recusar a confirmação automática, a CLI permite editar todos os campos:

? Confirmar e fazer deploy? (Y/n) n

  Build command: (npm run build) npm run build:custom
  Start command: (npm start) node server.js
  Port: (3000) 8080

Variáveis de ambiente

A Veloz detecta variáveis de ambiente automaticamente a partir de:

  • .env.example
  • .env.sample
  • .env.local.example
  • .env

No primeiro deploy, a CLI lista as variáveis encontradas e pergunta se você quer preenchê-las. As variáveis também são injetadas automaticamente no Dockerfile durante o build.

Dependências do sistema

Alguns frameworks e bibliotecas precisam de pacotes do sistema para funcionar. Use aptPackages no veloz.json:

"build": {
  "aptPackages": ["ffmpeg", "libvips-dev"]
}

Ou via nixpacks.toml:

[phases.setup]
nixPkgs = ["ffmpeg", "imagemagick"]
aptPkgs = ["libvips-dev"]

Casos comuns:

Biblioteca Pacotes necessários
sharp libvips-dev
node-canvas libcairo2-dev, libpango1.0-dev, libjpeg-dev, libgif-dev, librsvg2-dev
Puppeteer chromium-browser, libnss3, libgbm1, fonts-noto
Playwright libnss3, libgbm1, libpango1.0-0, fonts-noto
fluent-ffmpeg ffmpeg
pg-native libpq-dev
better-sqlite3 libsqlite3-dev

Para a lista completa e exemplos detalhados, veja Pacotes do Sistema.

Próximos passos