Get started

Running in about a minute.

One binary, one SQLite file. No Kubernetes, no Postgres, no Redis to stand up first. Here is the whole path from nothing to a live run.

  1. 1

    Install

    Install with Go, or grab a prebuilt binary from the releases page. To run Ansible you also need ansible-playbook on the box. Bash and Python work out of the box.

    go install github.com/dcadolph/yardmaster@latest
  2. 2

    Serve

    Start the server. SQLite is the default. Point --db at a Postgres DSN when you want more than one instance. Set the encryption pair if you plan to store credentials.

    # optional, only needed for stored secrets
    export YARDMASTER_ENCRYPTION_KEY=change-me
    export YARDMASTER_ENCRYPTION_SALT=change-me-too
    
    yardmaster serve --addr :8080 --db yard.db
  3. 3

    Open the UI

    The whole interface lives at /ui/. This is where you launch runs and read them as a live host-by-task matrix.

    open http://localhost:8080/ui/
  4. 4

    Launch your first run

    Click Launch run in the UI, or fire one over the API. No Ansible required for this one. It is a plain Bash run you can watch stream live.

    curl -s -X POST localhost:8080/runs \
      -H 'content-type: application/json' \
      -d '{"tool":"bash","command":"echo hello from yardmaster"}'
  5. 5

    Lock it down

    Mint an admin token. The moment the first token exists, the API requires auth, so create one before you expose the server, then send it as a bearer token.

    yardmaster token new --name admin --db yard.db

Coming from AWX or Semaphore? Import your projects, inventories, templates, and schedules in one command.

Migration guide

Where to next

Put AWX and Semaphore to bed.

Structured runs, balanced splits, a fleet that remembers, and a control plane that proves itself, from one binary.