Changelog

History of the platform's main news. For the complete list of technical changes, see the CLI changelog in the official repository.


2026-07-23 — `undeploy` command

Added

`undeploy` — the inverse of `deploy`

New command to tear down an instance, closing the deploy lifecycle. Dry-run is the default behavior: without --apply, the command only prints the removal plan.

  • deployally undeploy --instance-uid X — shows the plan, removes nothing.
  • deployally undeploy --instance-uid X --apply — removes the instance's containers and the local registry, preserving the data under /data, legacy volumes and secrets. A redeploy of the same instance-uid comes back with everything.
  • deployally undeploy --instance-uid X --apply --purge-data --yes — also removes the instance's /data tree, legacy named volumes and the secrets directory. Honors the template's on_uninstall.preserve block.

undeploy never removes system bind volumes, the public network, shared assets, or containers belonging to other instances. It is a local operation — see the command reference for details.


2026-06-05 — Full declarative surface

Added

Six Archetypes

Templates now build on one of six predefined archetypes, with sensible defaults for each service class:

  • application — traditional web apps (memos, uptime-kuma, vaultwarden)
  • asset — shareable infrastructure services (mysql, postgresql, redis)
  • static — static sites served by Caddy/nginx
  • worker — background processes without HTTP routes
  • multi_component_saas — apps with multiple cooperating containers (postal: web + smtp + worker)
  • network_appliance — network edges with network_mode: host (traefik)

Each archetype applies CCS labels, a network-attach policy, a default healthcheck, and an appropriate restart policy. You describe what to run, and the platform decides how.

Asset Auto-Provision

The new --provision-missing-assets flag resolves dependencies automatically. If your application declares it needs a MySQL database and none is running, the deployer:

  1. Detects the dependency via needs
  2. Brings up the first compatible asset from the options list
  3. Waits until it's healthy with retry and exponential backoff
  4. Connects your application automatically

No more manual choreography to start services in order.

Eleven Published Templates

The curated catalog now includes: memos, uptime-kuma, vaultwarden, mariadb, mysql, postgresql, redis, n8n, wordpress, postal, traefik. All validated, with production defaults, real healthchecks, and auto-generated secrets.

Four Storage Kinds

Templates now declare storage explicitly by type:

  • volume — named, persistent Docker volume
  • bind — bind mount from the host
  • config_file — config file rendered from a template (variable substitution applied)
  • tmpfs — in-memory, ephemeral storage

Especially useful for apps that need config.yaml, nginx.conf or similar files mounted as single files in the container.

Reflang — Substitution Language

Unified syntax for referencing values anywhere in the template. Ten namespaces cover every context: ${input.X}, ${secrets.X}, ${self.X}, ${instance.X}, ${context.X}, ${tenant.X}, ${system.X}, ${env.X}, ${needs.X}, ${asset.X}.

Includes functions for generating values in the template: random.hex(N), random.alnum(N), random.password(N), random.uuid(), plus control helpers like if(cond, a, b), default(v, fallback), exists(v), concat(...), lower(s), upper(s), replace(s, from, to).

Nested substitution supported: ${input.${SLUG_UPPER}_DOMAIN} resolves correctly, enabling per-instance dynamic templates.

See the Reflang Reference for the full list.

Multi-Tenant via Dispatcher

Templates can declare per_instance dispatchers to create isolated entities per tenant (database per tenant, queue per tenant). DeployAlly invokes the asset's dispatcher automatically when a new instance is deployed.

Canonical Cert Resolver Alias

Traefik labels now use a canonical cert resolver name (tls.certresolver) that matches the recommended default configuration. No more adjusting templates per server.

Changed

  • The deploy command now lives under the v3 subcommand (deployally v3 deploy ...)
  • The validate command accepts --templates-dir D to validate local templates before publishing
  • The template new command generates editor-ready scaffolds for any of the six archetypes

2026-04-29 — Navigable wizard

Added

Wizard inputs got arrow-key navigation, prefix grouping (MAIN_DB_*, WEB_*, SMTP_*), on-demand help (?), textual back (<), and visual masks (*) when typing passwords. Inputs with generate: in the advanced section are auto-filled without a prompt.


2026-02 — Template catalog

Added

Platform launched with a curated catalog of versioned, immutable templates. Each template has a SHA256 hash of the spec, enabling drift audits between what was deployed and what is running.

Changed

Download URLs now go through the CDN (get.deployally.com).


Download

By Borlot.com.br on 05/06/2026