Dock
Dock is the host agent. It is a live accept loop on :7422. It receives .bur files and runs them as child processes. Measured: GET /v1/health → {"ok":true}; PUT /v1/apps/:name → 201.
Start
Loopback (safer default):
buraaq dock
On a real server:
buraaq dock --public
That binds 0.0.0.0:7422. Prefer a TLS reverse proxy in front if the dock is on the internet. This control plane is HTTP + bearer token, not TLS. App traffic is still TLS via Keel (8443).
Guest dock is loopback or --public. There is no --bind flag on this binary.
Token
First start creates %USERPROFILE%\.buraaq\dock\token (or ~/.buraaq/dock/token). Copy that token to the machine that runs buraaq ship HOST:
$env:BURAAQ_DOCK_TOKEN = Get-Content $env:USERPROFILE\.buraaq\dock\token
Sources, in order:
BURAAQ_DOCK_TOKEN- The token file above
Protocol
Control plane is HTTP/1.1 on port 7422.
| Method | Path | Role |
|---|---|---|
GET | /v1/health | Liveness (no token) |
GET | /v1/apps | List (token) |
GET | /v1/apps/:name | One app (token) |
PUT | /v1/apps/:name | Upload .bur and run (token) |
DELETE | /v1/apps/:name | Stop (token) |
Auth: Authorization: Bearer <token>.
Push from your laptop
$env:BURAAQ_DOCK_TOKEN = "the-same-token"
buraaq ship 192.168.1.20
That packs, PUTs the .bur to 192.168.1.20:7422, and the dock starts the new process (old pid is killed).
Guest ship HOST packs and PUTs. ship --status / ship --stop are thinner than this table: list and stop exist on the HTTP plane; the CLI path that is measured is PUT.
Keep Postgres and TLS certs on the server (or pack certs with the app). The dock inherits the server environment when it starts the process.
