A Veloz detecta monorepos automaticamente e permite fazer deploy de múltiplos apps em um único comando.
Detecção automática
A CLI reconhece monorepos pelos seguintes indicadores:
pnpm-workspace.yaml- Campo
workspacesnopackage.json - Estrutura Turborepo (
turbo.json)
Quando um monorepo é detectado, a CLI lista todos os apps encontrados para você escolher quais quer deployar.
Deploy de monorepo
Na raiz do seu monorepo, rode:
veloz deployA CLI vai:
- Detectar que é um monorepo
- Listar todos os apps com seus frameworks
- Pedir para você selecionar quais apps deployar
- Mostrar um resumo de cada app selecionado
- Fazer deploy de todos em paralelo
Exemplo de output
ℹ Monorepo detectado (pnpm)
? Quais apps deseja fazer o deploy?
✔ web (Next.js) — apps/web
✔ api (Node.js) — apps/api
docs (Next.js) — apps/docs
── web ──
Nome: web
Tipo: Serviço Web
Framework: Next.js
Build: next build
Start: next start
Porta: 3000
── api ──
Nome: api
Tipo: Serviço Web
Framework: Node.js
Build: tsc
Start: node dist/index.js
Porta: 8080
? Confirmar e fazer deploy? (Y/n)
Estrutura suportada
A Veloz suporta qualquer estrutura de monorepo com workspaces:
meu-projeto/
├── package.json # workspaces: ["apps/*", "packages/*"]
├── pnpm-workspace.yaml # ou pnpm workspaces
├── veloz.json # gerado automaticamente
├── apps/
│ ├── web/ # Next.js, Remix, etc.
│ ├── api/ # Express, Hono, Fastify, etc.
│ └── docs/ # Documentação
└── packages/
├── ui/ # Componentes compartilhados
└── utils/ # Funções utilitárias
Configuração (veloz.json)
Após o primeiro deploy, a CLI gera um veloz.json na raiz do projeto com todos os serviços configurados:
{
"version": "1.0",
"project": {
"id": "proj_abc123",
"name": "meu-projeto"
},
"services": {
"apps/web": {
"id": "svc_web123",
"name": "web",
"type": "web",
"root": "apps/web",
"branch": "main",
"build": {
"command": "next build"
},
"runtime": {
"command": "next start",
"port": 3000
}
},
"apps/api": {
"id": "svc_api456",
"name": "api",
"type": "web",
"root": "apps/api",
"branch": "main",
"build": {
"command": "tsc"
},
"runtime": {
"command": "node dist/index.js",
"port": 8080
}
}
}
}Nos deploys seguintes, a CLI usa o veloz.json para saber quais serviços deployar sem perguntar novamente.
Editando configuração por app
Se você recusar a confirmação automática, a CLI permite editar cada app individualmente:
- Build command — comando de build customizado
- Start command — como iniciar o app
- Port — porta do serviço
Variáveis de ambiente
Cada app do monorepo tem suas próprias variáveis de ambiente. Após a criação dos serviços, a CLI detecta variáveis em cada app (.env.example, .env.local, etc.) e pergunta se você quer preenchê-las:
# Definir variáveis para um app específico
veloz env set DATABASE_URL=postgres://... --service web
# Listar variáveis de um serviço
veloz env --service apiDeploy paralelo
Quando você faz deploy de múltiplos apps, a Veloz executa os builds em paralelo para máxima velocidade. Cada serviço recebe seu próprio ambiente isolado de build.
Domínios
Cada serviço do monorepo recebe um subdomínio automático:
web-meuapp.onveloz.com
api-meuapp.onveloz.com
Você pode adicionar domínios personalizados para cada serviço:
veloz domains add meuapp.com --service web
veloz domains add api.meuapp.com --service apiPróximos passos
- Variáveis de Ambiente — Gerenciar secrets por serviço
- Domínios — Configurar domínios personalizados
- Configuração — Ajustar build e runtime