> ## Documentation Index
> Fetch the complete documentation index at: https://docs.vertracloud.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Contribuir com um template para o catálogo público da Vertra Cloud

> Adicione um template da comunidade ao catálogo público por pull request: estrutura de pastas, validação, revisão e selo Community.

Você contribui com um template para o catálogo público por meio de um pull request no [repositório público de templates](https://github.com/vertracloud/templates) no GitHub. Não existe formulário de envio no dashboard. Uma contribuição pode ser um template de código ou de imagem, e o template permanece aberto: um template público nunca pode ser fechado.

## Passos

**1. Faça um fork e adicione uma pasta**

Faça um fork do repositório e adicione uma pasta com o nome do seu template, por exemplo `discord-bot-tickets/`, contendo:

```text theme={null}
discord-bot-tickets/
  vertracloud.template.yaml   # o manifesto
  src/                        # o código (template de código), ou um Dockerfile e seu contexto (template de imagem)
  README.md                   # exibido na página do template
  docs/                       # páginas extras opcionais
  icon.svg                    # o ícone
```

**2. Valide o manifesto**

Rode a verificação a partir da pasta. Ela compara o manifesto com o schema e as regras da plataforma e não cria nada:

```bash theme={null}
vertra template validate discord-bot-tickets
```

Adicione a linha do schema no topo do manifesto para ter ajuda no editor: veja o [schema do manifesto](https://docs.vertracloud.app/pt-br/templates/reference/manifest-schema.md). Templates públicos têm algumas regras extras, abaixo.

**3. Teste como template privado**

Crie-o como template privado na sua própria conta e use-o de verdade; é o mesmo motor do catálogo público. Veja [Validar e testar](https://docs.vertracloud.app/pt-br/templates/create/validate-and-test.md#teste-como-template-privado).

**4. Abra o pull request**

O CI valida o manifesto, faz o build da imagem se houver um Dockerfile, procura file capabilities nela (um binário com uma delas não roda na plataforma) e verifica a licença declarada.

**5. Revisão**

A Vertra Cloud roda o template na plataforma e revisa a mudança quanto à segurança (sem minerador, telemetria oculta ou segredo no código), a uma licença que permita distribuição pública e à qualidade do README. Corrija o que for pedido e faça push de novo.

**6. Merge e publicação**

No merge, a pasta naquele commit é empacotada como uma versão do template e publicada com o selo **Community** e o seu nome como autor. Ninguém depende da sua conta: o código fica com a Vertra Cloud, e um template de imagem vira uma imagem mantida pela plataforma.

Novas versões são novos pull requests, revisados novamente.

## Regras extras para templates públicos

| Regra | Por quê | Problema se descumprida |
| - | - | - |
| Fixe toda imagem por digest (`name@sha256:...`) | Todos que usam uma versão recebem o mesmo software | `invalid_source` |
| Serviços de código precisam de `source.path` | O código fica no repositório | `invalid_source` |
| Sem `env_hidden` | Valores públicos são visíveis por definição | `forbidden_in_public` |
| Sem `code.view: false` | O código público é sempre aberto | `forbidden_in_public` |
| Sem `share.full_copy` | Links de compartilhamento são para templates privados | `forbidden_in_public` |
| `min_plan` deve ser um id de plano real | Um plano renomeado não pode deixar um template errado | `invalid_plan` |

Os ids de template são únicos em todo o catálogo. Escreva o `README.md` do jeito que um usuário precisa: o que o template cria, o que fazer depois do deploy e onde ficam os dados. Declare a licença do software original em `links.license`.

## Depois do merge

* A Vertra Cloud mantém o template. As atualizações do software chegam por novas versões; quem usa o template vê **Versão nova disponível** e decide quando atualizar.
* Um template que deixa de ser mantido é marcado como **obsoleto** e sai da galeria. Os apps já criados continuam rodando e são avisados. Uma imagem que um template ainda usa só é removida com aviso prévio e um caminho de migração para quem a usa.

## Relacionados

> [card] [Tutorial: de privado a público](https://docs.vertracloud.app/pt-br/templates/tutorials/private-to-public-pr.md)
>
> O caminho completo, de um template privado a um pull request.

> [card] [Boas práticas](https://docs.vertracloud.app/pt-br/templates/create/best-practices.md)
>
> Leia antes de abrir o PR.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.