Phase 0 Decision Note - OpenWork Labs Host (labs.brainforge.ai)

Date: 2026-03-07
Related ticket: PLT-1074

Decision

Proceed with a standalone OpenWork host deployment for Labs using the Docker host contract in apps/openwork/packaging/docker.

Why

  • Keeps OpenWork runtime risk decoupled from Platform runtime.
  • Matches the Phase 0/1 direction in openwork-platform-integration-plan.md.
  • Uses an explicit storage + env contract that can be repeated by operators.

Storage + env contract

  • Persistent volume mounted at /data
  • OPENWORK_WORKSPACE=/data/workspace
  • OPENWORK_DATA_DIR=/data/openwork-orchestrator
  • OPENWORK_SIDECAR_DIR=/data/sidecars
  • OPENWORK_TOKEN and OPENWORK_HOST_TOKEN set via Railway variables

Verification contract

Run smoke checks against the final host:

  • GET /health = 200
  • GET /status = 200
  • GET /ui = 200
  • Authenticated GET /workspaces = 200

Script of record: apps/openwork/packaging/docker/smoke-check.sh

Open question resolution

Staging URL before final domain?
Yes, use Railway-provided domain as a temporary verification endpoint before attaching labs.brainforge.ai.