Files
orchestra/deploy/DEPLOYMENT.md
T
2026-07-30 14:34:29 +04:00

1.8 KiB

Deployment verification

Both binaries embed their Git revision, UTC build time, and dirty flag. Build the coordinator with deploy/redeploy.sh; it installs and restarts the local orchestra.service.

Browser operator login

The browser UI requires ORCHESTRA_WEB_USERNAME and ORCHESTRA_WEB_PASSWORD_HASH. Generate a bcrypt hash without putting the password in shell history:

go run ./cmd/orchestra-password

Set the emitted hash in the service environment along with the chosen username, then restart the coordinator. ORCHESTRA_WEB_TOKEN is not used by the browser UI anymore.

Build a worker for staging on workpc with:

revision=$(git rev-parse HEAD)
build_time=$(date -u +%Y-%m-%dT%H:%M:%SZ)
dirty=false; test -z "$(git status --porcelain)" || dirty=true
go build -ldflags "-X orchestra/internal/buildinfo.Revision=$revision -X orchestra/internal/buildinfo.Time=$build_time -X orchestra/internal/buildinfo.Dirty=$dirty" -o orchestra-worker ./cmd/orchestra-worker
scp orchestra-worker workpc:~/orchestra-deploy/orchestra-worker
ssh workpc 'sha256sum ~/orchestra-deploy/orchestra-worker'

The worker receives only the path to a normal project configuration file: ORCHESTRA_WORKER_PROJECT_CONFIG_FILE=/etc/orchestra/worker-projects.json. That file contains a JSON object whose project entries contain repo, worktree_root, and remote; mount or provision it like any other worker configuration. The legacy single-checkout ORCHESTRA_WORKER_PROJECTS comma list remains supported for one existing checkout. An absent project is ineligible for routing.

Verify the coordinator at GET /v1/admin/diagnostics with the normal admin credential: its build object is the coordinator provenance. GET /v1/federation/workers shows every worker's build, supported projects, and worker-local health without SSH.