Pular para o conteúdo principal
deploy é um bloco dentro de um serviço de app que define o padrão e o travamento de três comportamentos: deploys sem downtime (blue-green), rollback automático e rollback com dados. Ele só restringe: o plano continua decidindo o que existe, e um manifesto nunca habilita algo que o plano não inclui.

As três configurações

Mudar uma configuração travada para outro valor devolve 403 TEMPLATE_SETTING_LOCKED; enviar o valor do template é sempre aceito. Coloque "off" e "on" entre aspas no YAML, ou o parser os lê como booleanos. Para saber como funcionam o blue-green e o rollback em um app comum, veja Rollbacks e deploys sem downtime.

Quando travar o blue-green desligado

O blue-green executa a cópia antiga e a nova ao mesmo tempo enquanto o tráfego é movido. Trave-o desligado (default: "off", locked: true) sempre que duas cópias rodando juntas causariam dano. Deixe-o aberto (auto, destravado) para apps web e APIs stateless que mantêm os dados em um banco de dados gerenciado e respondem a requisições sem efeitos colaterais na inicialização.

Quando exigir rollback com dados

Use rollback: { with_data: required } quando a nova versão migra o banco de dados ou os arquivos de dados na inicialização. Fazer rollback só do código deixaria um programa antigo lendo um schema que ele não entende mais. Com required, o rollback manual e o automático só do código ficam bloqueados, e o caminho de volta é restaurar o snapshot tirado antes da atualização, que traz de volta o código, o /app e os bancos de dados da stack juntos. Use optional (o padrão) quando o código puder sofrer rollback de forma independente, como em um bot stateless cujo estado é apenas um token.

Atualizações do template

Quem usa o template recebe uma nova versão somente quando escolhe atualizar. Antes da atualização, a plataforma tira um snapshot de segurança do /app e dos bancos de dados da stack, atualiza os serviços um após o outro e, se um passo falhar, volta ao snapshot. with_data: required é o que informa à plataforma que restaurar os bancos de dados faz parte da volta.

Exemplo: n8n e o bot inicial

O n8n migra o próprio banco de dados, executa agendamentos e pode manter SQLite, então trava o blue-green desligado e exige rollback com dados:
O bot inicial não tem dados para migrar, mas duas cópias com o mesmo token responderiam em dobro:
Última modificação em 30 de outubro de 2026