Skip to main content

Como usar ambarks.json

O arquivo ambarks.json permite dizer ao AmbarksCloud como preparar e iniciar seu projeto quando o comportamento automático não é suficiente. Crie o arquivo na raiz do projeto:
meu-projeto/
  ambarks.json
  package.json
  src/
Também é aceito o nome ambarks.config.json.

Exemplo completo

{
  "build": {
    "installCommand": "npm ci",
    "buildCommand": "npm run build"
  },
  "run": {
    "command": "npm run start"
  }
}

Campos (resumo)

CampoObrigatórioUso
build.installCommandnãoComando para instalar dependências
build.installnãoAtalho alternativo para comando de instalação
build.buildCommandnãoComando para gerar build
build.commandnãoAtalho alternativo para comando de build
run.commandsimComando usado para iniciar a aplicação

Regras importantes

  • O JSON precisa ser válido.
  • O arquivo deve estar na raiz do projeto enviado.
  • O comando de start deve manter o processo rodando.
  • Servidores web devem escutar em 0.0.0.0.
  • A porta usada pelo comando deve bater com a porta interna configurada no projeto.

Exemplos por stack

Discord bot (Node.js)

Para bots, o mais importante é: processo em execução e logs claros (não há porta HTTP).
{
  "build": {
    "installCommand": "npm ci"
  },
  "run": {
    "command": "node src/bot.js"
  }
}
Veja: Deploy de bot Discord (Node.js).

Express (Node.js)

{
  "build": {
    "installCommand": "npm ci"
  },
  "run": {
    "command": "node server.js"
  }
}

FastAPI (Python)

{
  "build": {
    "installCommand": "pip install --no-cache-dir -r requirements.txt"
  },
  "run": {
    "command": "uvicorn main:app --host 0.0.0.0 --port 8000"
  }
}

Site estático com build (Vite)

{
  "build": {
    "installCommand": "npm ci",
    "buildCommand": "npm run build"
  },
  "run": {
    "command": "npm run preview -- --host 0.0.0.0 --port 4173"
  }
}

Exemplos inválidos (e por quê)

JSON inválido

{ "run": { "command": "npm start", } }
Motivo: vírgula extra.

Campo desconhecido

{
  "run": { "command": "npm start" },
  "startCommand": "npm start"
}
Motivo: startCommand não é um campo reconhecido.

run.command vazio

{ "run": { "command": "" } }
Motivo: o comando precisa ser uma string não vazia.

Quando não usar

Se seu projeto precisa instalar pacotes do sistema, copiar arquivos para pastas específicas ou usar várias etapas de build, prefira Dockerfile.