Atualizar para uma nova versão
Quando uma nova versão é publicada, o app ou a stack mostra Nova versão disponível com um changelog curto e o botão Atualizar. Uma versão de segurança fica destacada no dashboard e também é enviada por e-mail às contas que rodam uma versão mais antiga; o clique continua sendo seu. Antes de você confirmar, a atualização mostra o que mudaria: a nova versão, se é uma versão de segurança, novas perguntas, serviços adicionados ou removidos, memória que aumentou e se ela abre permissões.1
Snapshot de segurança
É feito, sem parar nada, um snapshot do
/app de cada app e dos bancos de dados da stack.2
Deploy
Os serviços são atualizados um após o outro, com as mesmas etapas de um deploy: imagens, apps, variáveis, certificados, início e health check.
3
Rollback em caso de falha
Se uma etapa falhar, todos os serviços voltam: as variáveis, as conexões e as configurações do app retornam ao que eram, e o snapshot é restaurado.
Quando uma nova versão muda a receita
Uma atualização bloqueada retorna
TEMPLATE_UPDATE_BLOCKED com um reason: no_new_version, detached, template_removed, link_revoked, ram, plan, image_slots, app_building ou deploy_in_progress. Veja a referência de erros.
As permissões nunca ficam mais restritas
Um app existente mantém a política com que foi criado. Se a nova versão abre algo (um template fechado passa a ser aberto), isso abre na atualização. Se uma nova versão fecha algo, isso vale só para os apps criados depois: quem já viu o código não pode desver. Veja Templates fechados.Apps desvinculados e templates removidos
- Se o autor do template remover o template, seu app continua rodando normalmente, com um aviso de que não receberá mais atualizações.
- Se você editar o código do app de um template aberto, o app se desvincula e vira um app comum, sem atualizações. O dashboard avisa antes da primeira edição, e você também pode desvincular por conta própria. O app de um template fechado não pode ser desvinculado.
- Versões de um template que algum app usa nunca são apagadas do armazenamento.
Rollback e snapshots
O rollback de um app de template depende de o software migrar ou não seus dados quando é atualizado.
Softwares como n8n, Open WebUI e Evolution API migram o banco de dados na inicialização, então o código antigo não consegue rodar sobre os dados como estão agora. Por isso esses templates exigem rollback com dados. Apps que não são de template, e apps que foram desvinculados, mantêm o rollback usual descrito em Rollback e deploys sem downtime. Para snapshots, veja Backups e snapshots.
Por que os deploys sem downtime ficam desligados
Deploys sem downtime mantêm duas cópias do app rodando ao mesmo tempo enquanto uma substitui a outra. A maioria dos templates deixa isso desligado e bloqueado, porque duas cópias quebrariam o software:
Um autor só pode restringir o que o plano permite; o plano continua decidindo o que existe. O rollback automático, onde o seu plano o tem, continua ligado por padrão.
Relacionados
Stacks
A atualização da stack roda todos os serviços juntos.
Erros
Bloqueios de atualização e seus motivos.