Host Orchestrator

Container-runtime, host-network and host-filesystem capabilities for deployment tools and CI runners.

What this demonstrates

  • Several host capabilities can be requested at once — each is granted or refused on its own
  • `container_runtime: docker` names the Docker Engine API, not the Docker product
  • `network: host` shares the host network stack; `filesystem: read-write` grants host filesystem access
  • The legacy top-level `host:` block spells the same needs, but is deprecated in launch/v1 and removed in launch/v2 (D-58)

When to use this: CI runners, deployment tools, and infrastructure agents that need host access.

Host CapabilitiesHost
host-orchestrator.yamlView on GitHub
# Example: App that orchestrates Docker containers on the host
# This pattern applies to deployment tools, CI runners, monitoring agents,
# and anything that needs direct access to host infrastructure.
#
# Host access is declared as CAPABILITY ENTRIES in `requires` (D-44): each
# `- host: { … }` entry is a privileged grant the provider either grants or
# refuses with a clear message. Together they tell the deployer that this
# app cannot run inside a standard container — a deployer should refuse or
# warn rather than attempting Docker-in-Docker, which is fragile.
#
# The legacy top-level `host:` block spells the same needs, but it is
# deprecated in launch/v1 and removed in launch/v2 (D-58). See
# spec/SPEC.md § Host for the per-key migration table.

version: launch/v1
name: launchpad
description: DevOps agent — give it a GitHub URL, get a running app
runtime: bun

requires:
  - host: { container_runtime: docker }  # the real Docker Engine API
    set_env:
      DOCKER_HOST: $url                  # e.g. unix:///var/run/docker.sock
  - host: { network: host }              # manages container ports directly
  - host: { filesystem: read-write }     # persistent state in ~/.launchpad/

provides:
  - protocol: http
    port: 3001
    exposed: true

env:
  ANTHROPIC_API_KEY:
    required: true
  LAUNCHPAD_HOME:
    default: ~/.launchpad

commands:
  install: bun install
  build: bun run build
  start: bun run src/server.ts

health: /api/health

Key lines explained

host: { container_runtime: docker }
Declares privileged host access — a security-sensitive capability a deployer may refuse if it can't safely grant it.
host: { network: host }
Shares the host network stack so the app can manage container ports directly.
host: { filesystem: read-write }
Grants persistent host filesystem access for the app's own state.
esc
Type to search the docs