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 sameinstance-uidcomes back with everything.deployally undeploy --instance-uid X --apply --purge-data --yes— also removes the instance's/datatree, legacy named volumes and the secrets directory. Honors the template'son_uninstall.preserveblock.
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:
- Detects the dependency via
needs - Brings up the first compatible asset from the options list
- Waits until it's healthy with retry and exponential backoff
- 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
deploycommand now lives under thev3subcommand (deployally v3 deploy ...) - The
validatecommand accepts--templates-dir Dto validate local templates before publishing - The
template newcommand 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
- Latest stable (x86_64)
- Latest stable (aarch64)
- Latest RC (x86_64)
- Installer