Taxonomia

O catálogo do DeployAlly é organizado em uma hierarquia inspirada na taxonomia biológica. Cada template ocupa um lugar exato na árvore — você acha o que precisa por categoria (família funcional) ou por slug (espécie técnica).

Hierarquia

kingdom
  └── family
        └── species
              └── variant
Nível Descrição Exemplo
kingdom Camada conceitual do ecossistema infrastructure, data, applications
family Categoria funcional (a "prateleira" do catálogo) database, blog, notes, workflow
species Tecnologia específica (o template) mariadb, wordpress, memos, n8n
variant Variante da imagem 11.4, php82-apache, alpine

Os campos relevantes ficam em identity do template:

identity:
  slug: wordpress     # species
  name: WordPress
  archetype: application
  family: cms         # family
  app_version: "6.7"

E a variant é declarada em image.variants[]:

image:
  base: wordpress
  variants:
    - { id: php82-apache, tag: php8.2-apache, default: true }
    - { id: php81-apache, tag: php8.1-apache }

Family ≠ Archetype

É comum confundir, mas são eixos diferentes:

  • family descreve o que o serviço faz funcionalmente (é um CMS, um banco, uma ferramenta de notas).
  • archetype descreve como o serviço se comporta tecnicamente (é uma app, um asset, um worker — ver Ecologia).

Exemplos:

Species Family Archetype
WordPress cms application
MariaDB database asset
Memos notes application
Traefik ingress network_appliance
Postal email multi_component_saas

No backend, o catálogo é organizado em diretórios por family/category:

factory/catalog/
├── _registry.yaml
├── blog/
│   └── wordpress.yaml
├── database/
│   ├── mariadb.yaml
│   ├── mysql.yaml
│   ├── postgresql.yaml
│   └── …
├── notes/
│   ├── memos.yaml
│   ├── joplin.yaml
│   └── …
├── cache/
│   └── redis.yaml
├── workflow/
│   └── n8n.yaml
├── monitoring/
│   └── uptime-kuma.yaml
├── password/
│   └── vaultwarden.yaml
├── email/
│   └── postal.yaml
├── ingress/
│   └── traefik.yaml
└── …

Cada arquivo <species>.yaml é um template completo. O nome do diretório vira a category exibida no front; o campo identity.family no template confirma essa colocação.

Categorias Suportadas

O catálogo cobre múltiplas verticais. Exemplos das principais categorias:

Categoria Exemplos de species
database mariadb, mysql, postgresql, redis (em cache), mongodb
cache redis, memcached
blog / cms wordpress
notes memos, joplin, anytype, logseq, trilium
workflow / automation n8n, activepieces
monitoring uptime-kuma, prometheus, grafana
email postal, mailcow
password vaultwarden, bitwarden-self-hosted
ingress / gateway traefik, caddy
analytics plausible, umami
documentation bookstack, outline
file_sharing nextcloud, syncthing

A lista evolui — cada release do catálogo adiciona novas species e, ocasionalmente, novas categorias.

URLs do Catálogo Público

O catálogo é exposto pela API em:

GET /api/v1/templates/<species>
GET /api/v1/catalog?family=<family>
GET /api/v1/catalog/categories

O front consome esses endpoints para montar a biblioteca pública (browse por categoria) e a página de cada template.

Busca via CLI

# Listar species disponíveis
deployally catalog list

# Filtrar por family
deployally catalog list --family database

# Mostrar detalhes de uma species
deployally catalog show wordpress

# Validar localmente um template antes de promover
deployally validate --species wordpress

Nomenclatura

Recurso Padrão Exemplo
Container <species> ou <species>-<uid> mariadb-shared, wordpress-blog-001
Volume Docker <instance_uid>_<storage_id> wordpress-blog-001_data
Network dedicada (asset) <species> mariadb, redis
Diretório de manifesto /opt/deployally/<instance_uid>/ /opt/deployally/wordpress-blog-001/

Promoção de Templates

Templates passam por três estados internos antes de aparecerem no catálogo público:

Status Descrição
draft Em desenvolvimento; validador pode ter erros.
validated Passa em deployally validate --species X.
published Promovido ao catálogo público; consumível por CLI/front.

Cada published exige deployally validate zerado e — quando aplicável — teste de deploy real no servidor de testes do projeto.

Próximos Passos

  • Templates — A estrutura YAML de cada species.
  • Ecologia — Como archetypes diferem de families e como serviços se conectam.
  • Definitions e Instances — Como uma species do catálogo vira um container rodando.
By Borlot.com.br on 05/06/2026