Stack Format
A stack is a YAML file that composes multiple blocks into a working
environment. Running stackie up reads the stack file, resolves
dependencies, allocates ports, injects secrets, and starts every block
in the correct order.
Minimal Stack File
# stackie-stack.yml
my-project:
blocks:
stackie.postgres: {}
stackie.redis: {}
Starting a Stack
# Start the stack defined in the current directory
stackie up
# Start a specific stack file
stackie up -f stacks/local.yml
# Stop all running blocks
stackie down
Stack Discovery
When you run stackie up without -f, Stackie looks for a stack file in
this order:
stackie-stack.yml/stackie-stack.yamlstackie.yml/stackie.yamldocker-compose.yml/docker-compose.yaml/compose.yml/compose.yaml(compatibility mode)
Dashboard Editing
The dashboard stack designer edits the same YAML format. Use Validate to check the current buffer, Save to write a file-backed definition, or Create Copy when the source is a built-in catalog stack. Catalog stacks are protected from direct edits; the editable copy defaults to the project root unless you choose another project-local path.
The visual designer is a WYSIWYG view over blocks, depends_on,
consumes, and named serves ports. Dragging blocks from the catalog adds
YAML block entries. Connecting compatible ports updates depends_on or
consumes.block_override as needed. Property panels expose common stack,
block, and connection fields while keeping the YAML editor available for
advanced edits.
Manual node positions are not runtime stack semantics. Stackie stores them
in .stackie/stack-designer-project.json alongside the active stack path,
so layout survives dashboard reloads without affecting stackie up.
Secrets
Place a companion secrets file next to your stack file (e.g.
local.secrets.yml alongside local.yml). Stackie loads it automatically
and makes the values available via ${secrets.KEY} references in your
block configuration.
# local.secrets.yml
secrets:
DB_PASSWORD: "local-dev-password"
API_KEY: "sk-test-abc123"