Pular para o conteúdo principal
Você contribui com o catálogo público por meio de um pull request ao repositório do catálogo: uma pasta com o seu manifesto, o seu código ou Dockerfile, um README e um ícone. O catálogo é construído a partir desse repositório, então não existe formulário de envio no dashboard. Este tutorial leva o bot do primeiro tutorial de “funciona como template privado” até um pull request aberto, e o mesmo caminho vale para templates de imagem. Templates do catálogo mostram um selo Community e o seu nome, têm sempre código aberto e são empacotados pelo build da Vertra a partir do commit que foi mesclado, então ninguém depende da sua conta para mantê-los disponíveis.

Antes de começar

Um template privado que você já criou e usou, como no primeiro ou no segundo tutorial.
A CLI da Vertra e uma conta no GitHub.
Código que você tem permissão para distribuir publicamente, sob uma licença compatível com isso. Os revisores conferem.
Um template do catálogo não pode ser fechado nem ocultar variáveis: code.view: false, env_hidden e share.full_copy são recusados em templates públicos com forbidden_in_public. Se o seu template for um template fechado, ele continua privado.

Passo a passo

1

Teste primeiro como template privado

Um template privado e um público rodam no mesmo engine, então o teste mais barato é usar o seu template de verdade. Em um estado limpo, confira pelo menos:
  • Deploy do zero pelo assistente ou com vertra template deploy, respondendo às perguntas com valores realistas, e depois a primeira tela do software.
  • Os padrões. Faça deploy de novo aceitando todos os padrões: ele precisa subir sem passos extras.
  • Os caminhos ignorados. Se um when ou uma opção desliga serviços, faça deploy de cada variante.
  • Reinício e atualização. Reinicie o app, publique a versão 1.0.1 e atualize um app, depois faça rollback. Os dados precisam sobreviver a reinícios.
  • RAM mínima. Faça deploy com o valor de ram.min e observe o log em busca de encerramentos por falta de memória.
Corrija os problemas no template privado e publique novas versões privadas até ficar entediante. Um pull request aberto cedo demais custa tempo aos revisores e custa a você o ciclo de revisão.
2

Verifique se o template é elegível

A revisão procura estes pontos, então confira antes:
  • Nada de mineradores, telemetria oculta, chamadas a servidores não relacionados nem segredos no código.
  • Uma licença que permita distribuição pública, com link em links.license.
  • Código aberto: o template precisa estar totalmente visível, sem env_hidden.
  • Uma versão fixa do software, com a imagem fixada (veja o passo do manifesto).
  • Um README que outra pessoa consiga seguir sem perguntar nada a você.
Respostas que o usuário precisa fornecer são perguntas (tipo secret para chaves); um segredo literal no manifesto é recusado com secret_in_manifest.
3

Monte a pasta

Faça um fork do repositório do catálogo, clone o seu fork e crie uma pasta com o nome do id do template, como os templates existentes fazem:
Um template de código traz o código dele (src/); um template de imagem traz o Dockerfile e tudo de que o build precisa, sem src/. A pasta docs/ guarda páginas mais longas que alimentam a página do template no site de documentação; o dashboard mostra só o README.
4

Adapte o manifesto às regras do catálogo

Copie o manifesto do seu template privado e mude o que difere:Para o bot, o manifesto do catálogo fica assim:
vertracloud.template.yaml (catalog)
Para um template de imagem, o manifesto do catálogo tem source: { type: image, image: "docker.io/vendor/app@sha256:<64 hex digits>", context: . }. A imagem é fixada por digest para que todo deploy rode os mesmos bytes, e o Dockerfile da pasta é construído pelo pipeline do catálogo em uma imagem que pertence à plataforma, não a você.
5

Adicione o ícone

O icon.svg é um arquivo vetorial simples, por exemplo de 128 por 128. O catálogo recusa um SVG que contenha scripts, foreignObject, atributos de evento como onload= ou referências a recursos externos:
icon.svg
6

Escreva o README

O README é a página do template. Os templates existentes do catálogo o escrevem em três seções (português, inglês e espanhol) com a mesma estrutura. Cubra o que o template entrega ao usuário e o que é bom saber:
README.md
Diga coisas verdadeiras: a memória de que o template precisa, o que é criado, o que o usuário precisa fazer depois do deploy, o que o template não faz e a licença do software empacotado.
7

Valide antes de enviar

O comando confere o manifesto com as regras da plataforma sem criar nada. O pipeline do catálogo então aplica por cima as regras exclusivas de templates públicos (digest da imagem, source.path, sem código fechado), então releia a tabela do passo do manifesto antes do push. Veja Validar e testar para saber como ler cada achado.
8

Abra o pull request

Faça o commit da pasta em uma branch do seu fork e abra um pull request ao repositório do catálogo. A cada pull request, o pipeline:
  1. Valida o manifesto com o schema e as regras (placeholders, when, permissões, slugs de plano).
  2. Faz o build da imagem, quando o template tem um Dockerfile, ou resolve a imagem fixada.
  3. Procura file capabilities na imagem: um binário com uma delas não roda com as restrições da plataforma.
  4. Confere a licença declarada.
Corrija o que ele reportar fazendo push na mesma branch.
9

Passe pela revisão

Uma pessoa da Vertra roda o template na plataforma com a memória mínima que você declarou e revisa a segurança (sem mineradores, sem telemetria oculta, sem segredos no código), a licença e a qualidade do README. Espere comentários e responda a eles no pull request. Quando for aprovado e mesclado, o pipeline empacota a pasta naquele commit como uma versão do template e a publica com o selo Community e o seu nome. Versões posteriores são novos pull requests, revisados do mesmo jeito. Um template da comunidade que deixa de ser mantido pode ser marcado como obsoleto: ele sai da galeria, os apps já criados continuam rodando e recebem um aviso.
O caminho até o catálogo público é o pull request, feito à mão: não existe botão no painel. Um template fechado nunca vai para o catálogo.

Solução de problemas

Próximos passos

Última modificação em 30 de outubro de 2026