A Veloz detecta seu framework automaticamente pelo package.json. Não precisa configurar nada — basta rodar veloz deploy.
Frameworks suportados
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.
| Framework | Dependência detectada | Build | Output |
|---|---|---|---|
| Vite + React | vite + react |
npm run build |
dist |
| Vite + Vue | vite + vue |
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
start→ Serviço Web (porta 3000) - Sem script
start→ Site Estático (outputdist)
Como funciona a detecção
- A CLI lê o
package.jsondo seu projeto - Verifica
dependenciesedevDependenciescontra a lista de frameworks - O primeiro framework que corresponder é usado (ordem de prioridade)
- Build e start commands são configurados automaticamente
Ordem de prioridade
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 startCustomizando
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 8080Via veloz.json
{
"services": {
".": {
"build": {
"command": "npm run build:custom"
},
"runtime": {
"command": "node server.js",
"port": 8080
}
}
}
}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 também 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.
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"]
}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
- Primeiro Deploy — Faça seu primeiro deploy
- veloz.json — Referência de configuração
- Pacotes do Sistema — Instalar dependências nativas
- Monorepo — Deploy de múltiplos apps