Taxonomy

The DeployAlly catalog is organized into a hierarchy inspired by biological taxonomy. Every template lives at an exact place in the tree — you find what you need by category (functional family) or by slug (technical species).

Hierarchy

kingdom
  └── family
        └── species
              └── variant
Level Description Example
kingdom Conceptual layer in the ecosystem infrastructure, data, applications
family Functional category (the catalog "shelf") database, blog, notes, workflow
species Specific technology (the template) mariadb, wordpress, memos, n8n
variant Image variant 11.4, php82-apache, alpine

The relevant fields live in the template's identity:

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

The variant is declared in image.variants[]:

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

Family ≠ Archetype

It's a common confusion, but they're different axes:

  • family describes what the service does functionally (it's a CMS, a database, a notes tool).
  • archetype describes how the service behaves technically (it's an app, an asset, a worker — see Ecology).

Examples:

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

Catalog Organization

On the backend, the catalog is organized into directories by 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
└── …

Each <species>.yaml file is a complete template. The directory name becomes the category shown in the front; the template's identity.family field confirms that placement.

Supported Categories

The catalog covers many verticals. Examples of the main categories:

Category Example species
database mariadb, mysql, postgresql, redis (in 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

The list evolves — each catalog release adds new species and, occasionally, new categories.

Public Catalog URLs

The catalog is exposed by the API at:

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

The front consumes these endpoints to build the public library (browse by category) and each template's page.

Searching via CLI

# List available species
deployally catalog list

# Filter by family
deployally catalog list --family database

# Show details for a species
deployally catalog show wordpress

# Validate a template locally before promoting
deployally validate --species wordpress

Naming

Resource Pattern Example
Container <species> or <species>-<uid> mariadb-shared, wordpress-blog-001
Docker volume <instance_uid>_<storage_id> wordpress-blog-001_data
Dedicated network (asset) <species> mariadb, redis
Manifest directory /opt/deployally/<instance_uid>/ /opt/deployally/wordpress-blog-001/

Template Promotion

Templates go through three internal states before showing up in the public catalog:

Status Description
draft Under development; validator may have errors.
validated Passes deployally validate --species X.
published Promoted to the public catalog; consumable by CLI/front.

Each published requires deployally validate clean and — when applicable — a real deploy test on the project's test server.

Next Steps

  • Templates — The YAML structure of each species.
  • Ecology — How archetypes differ from families and how services connect.
  • Definitions and Instances — How a catalog species becomes a running container.
By Borlot.com.br on 05/06/2026