03 · Hello, local stack
"Your laptop is a Lakeshore." Brings the whole stack up on localhost
so you can iterate without touching a hosted control plane.
For a server setup with authentication and a DreamLake connection, follow Setting Up Lakeshore Service.
Exercises
- Mongo via
docker compose(thedbpane). - Control-plane boot —
pnpm devinsidelakeshore-controlplane. - Nymph registration over
POST /v1/daemon/hello. - A
lakeshore daemon listround trip, proving CLI → control plane → daemon.
Requires
- Docker running.
- The container repo cloned with submodules.
pnpm,uv, andmprocsonPATH(brew install mprocs).lakeshore-controlplane/.envpresent, or the mprocslakeshorepane's built-in defaults. The pane sources.envwhen it exists and then fills inDATABASE_URL/MONGODB_URIdefaults for anything unset or empty — the.env.exampleplaceholders are empty strings, which would otherwise leak through and break Prisma.
Verifies
The control plane and one Rust daemon are alive and talking, both
reachable from the CLI on localhost:8080.
Run
Then, in another shell:
LAKESHORE_SERVER is read only by the lakeshore auth commands. Every
other command — including daemon list — resolves the control plane
from LAKESHORE_URL, and sends no bearer token when it is set.
Expected output
One row, state active, seen measured in seconds. queues shows —
because an empty membership array means the default queue — there is no
literal "default" entry.
Then smoke it
Ten sections covering stdout, stderr separation, exit codes, env passthrough, stdin, workdir writes, the timeout sentinel, a long-poll that spans multiple windows, and host Python. It bails on the first failure and prints the expected-versus-actual pair.
Alternative: no TUI
Idempotent — re-running skips anything already up.
If it fails
| Symptom | Likely cause |
|---|---|
db pane: "container name already in use" | A stale standalone dreamlake-udf-mongo container. Run the mongo-clear pane, then restart db. |
Control-plane pane: DATABASE_URL is required | .env exists but sets DATABASE_URL="", and something overrode the pane's default. Unset it or give it a real value. |
nymph pane fails with gcc-11 not found | A stale CC export. The pane forces CC=clang; if you are running cargo by hand, unset CC first. |
daemon list returns no rows | Nymph started but never reached the control plane. Check the nymph pane's --server flag and that the control plane is listening on 8080. |
daemon list returns 401 | The control plane has LAKESHORE_ADMIN_TOKEN set, so it is not in open mode. Either clear it in .env for local dev, or mint a token — see 15 · Token lifecycle. |
daemon list says "server not configured" | Neither LAKESHORE_URL nor a saved auth login is present. |
Status
Manual.