Runbooks

Add a machine

Put a host on the board without putting a key in git.

  1. Name the env vars

    Pick SSH_KEY_HOST and HEARTBEAT_TOKEN_HOST. Put the key and the token in the environment or in Actions secrets.

  2. Add the row

    In Settings, add the name, documentation-style host, and SSH user. Save the JSON and turn demo mode off.

  3. Install the reporter

    On the host, run reporter/heartbeat.mjs against a URL that is only reachable on your private network.

  4. Confirm the badge

    Wait for the status Action. Checks normal means a fresh observation. Unknown means nothing has reported.

Rotate a token

Replace a read-only token without pasting it into the config.

  1. Create the replacement

    Create a fine-grained token with Actions read and contents read. Do not grant write.

  2. Store it as a secret

    Update the Actions secret named by tokenEnv. The config keeps the name only.

  3. Re-run the status workflow

    The next collector pass should show Pass. A 401 becomes Token rejected, not a green badge.

Read a failed deploy

Decide whether the site is down or only the ship failed.

  1. Separate the two badges

    Website and Deploy are different observations. A failed workflow can sit next to a site that still answers.

  2. Ignore pull requests

    A red pull request run is not a failed release. The adapter skips those events.

  3. Open the run in the repo

    Use the repository you already listed. The dashboard does not copy logs into the page.

Sample data · not live · Oct 20, 4:41 PM CDT

Workspace

Find anything

How status works

Every badge is an observation with a time. Fresh, stale, unknown, and failed stay distinct. A missing report is never shown as healthy.

The browser never receives tokens, SSH keys, or heartbeat secrets. Those stay in environment variables and in the status Action.