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-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/healthKey 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.
See this pattern in real apps — Browse the app catalog for more patterns.