Block System

Blocks are reusable package specifications that define how to install and run a service. They are the fundamental building unit in Stackie — similar in concept to Docker images, but lighter and integrated with your OS package manager.

What a Block Contains

Each block specifies:

  • Packages to install (e.g., PostgreSQL binaries, Node.js runtime)
  • Configuration files and templates
  • Startup commands and health checks
  • Port declarations for network access
  • Volume mounts for persistent data
  • Dependencies on other blocks

Listing Available Blocks

# List installed blocks
stackie blocks

# Search for a block by name or description
stackie search postgres

Using Blocks in a Stack

Blocks are referenced by name in your stackie-stack.yml:

my-project:
  blocks:
    stackie.postgres:
      serves:
        PORT: { port: 5432, type: db }
    stackie.redis: {}