Documentation map

Read the docs by the job you need to do.

This docs set is organized around what actually exists in the code: the CLI transport and sync loop, the Go agent's auth and control surface, blue-green preview routing, plugins, services, and webhook-driven deploys.

Recommended path

1. Quickstart for the first running preview.

2. relay CLI for the local operator workflow and command surface.

3. relayd for auth, app config, webhooks, services, and runtime state.

Starting points

Open the guide that matches the task in front of you.

Each page is anchored to a real surface in the repo: a command group, an API family, a config file, or a runtime subsystem.

Operator surface

The docs now reflect what main.go and relay.js already ship.

Relay is no longer just deploy and logs. The server and CLI already include socket auth, dashboard sessions, projects inventory, secrets, app controls, companion service APIs, plugin mutation policy, and live event streams.

Local socket transport

The CLI can talk over relay.sock with filesystem ACLs instead of a bearer token. The same API stays available over HTTP for remote use.

Control APIs

The agent already exposes app config, companion management, secrets, events, projects, blue-green slot state, and rollout controls. The docs now point at the exact guides for each one.

Recent CLI additions

status, list, projects, rollback, start/stop/restart, secrets, plugin management, relay version, agent update, and the interactive init wizard are all part of the shipped client surface.

Useful API paths
GET    /api/projects
GET    /api/events
POST   /api/apps/config
GET    /api/apps/companions
POST   /api/apps/secrets
POST   /api/webhooks/github
Config model

Three files, three jobs.

Most confusion comes from mixing local CLI defaults with build hints or runtime topology. Relay keeps those concerns in separate files on purpose.

.relay.json

CLI defaults for one project folder: socket or URL, token, app, env, branch, and optional dir.

relay.config.json

Buildpack and command overrides used during the build and run plan.

relay.json

Runtime topology for project services and companion containers.

relay.config.json
{
  "kind": "next-standalone",
  "service_port": 3000,
  "install_cmd": "npm ci",
  "build_cmd": "npm run build",
  "start_cmd": "node server.js"
}
Operator notes

The API accepts both Authorization: Bearer and X-Relay-Token.

The dashboard stores its token in an HttpOnly relay_session cookie.

Socket requests are treated as local auth and inherit filesystem ACL protection.

Plugin install and remove stay disabled unless the server enables mutation explicitly.