Skip to content

deckctl

Manage and apply Jinja2 templates across local directories and GitLab groups — with caching, tag pinning, themed output, and drop-in Copier compatibility.

deckctl scaffolds projects from templates you keep either on your filesystem or in a GitLab group. It renders them with Jinja2 (via gonja), lets you change the delimiters so Helm and Terraform templates survive untouched, and can apply existing Copier templates as-is.

Terminal window
deckctl source add --name local --type local --path ~/templates
deckctl template list --source local
deckctl template apply go-service ./my-service --source local --var app_name=billing

Getting Started

Install the binary, register your first source, and apply a template. Start with the getting started guide.

Two source types

Templates live in a local directory or in a GitLab group — public or private, gitlab.com or self-hosted. See Configuring sources.

Helm-safe rendering

Override the Jinja2 delimiters per template so charts and Go templates pass through literally. See Custom delimiters.

Copier compatible

Point deckctl at a repo with a copier.yml and it applies it — ordered questions, computed defaults and when conditions included. See Copier compatibility.

Cached and pinnable

GitLab templates are cached with ETag and TTL freshness checks, and --tag pins an exact version. See Caching.

Scriptable

Every command speaks -o json, and every prompt can be skipped with a flag. See Using deckctl in CI.

If you want to…Read
Install and run your first applyGetting Started
Understand the moving partsCore concepts
Write your own templateAuthoring templates
Look up a command or flagCLI Reference
Look up a config file fieldConfiguration reference