···1919- appview (<https://tngl.boltless.dev>) (live reloading)
2020- [ncps](https://github.com/kalbasit/ncps) nix binary cache (internal, `http://ncps:8501`)
2121- pdsls (<https://pdsls.tngl.boltless.dev>)
2222+- bobbin (<https://bobbin.tngl.boltless.dev>, host `:8090`)
2323+- hydrant indexer + record/identity resolver feeding bobbin (internal)
2424+- web/ sveltekit frontend (host `127.0.0.1:5174`, live reloading)
2225- caddy reverse proxy
23262427## Setup
···5154 This writes the image directory under `out/localinfra-spindle-images`.
52555. `docker compose up`
53566. AppView will be running on `127.0.0.1:3000` with two test users: `alice.pds.tngl.boltless.dev` and `bob.pds.tngl.boltless.dev`. Both with password `password`.
5757+5858+## bobbin stack
5959+6060+The `web` service runs `vite dev` against the local bobbin on
6161+`http://127.0.0.1:5174` (port 5174 so it doesn't clash with a host-side
6262+`pnpm dev` on 5173). For host-side `web/` dev, point the frontend at the
6363+local bobbin (e.g. in `web/.env`):
6464+6565+```bash
6666+BOBBIN_URL=http://127.0.0.1:8090
6767+VITE_HANDLE_RESOLVER_URL=https://pds.tngl.boltless.dev
6868+VITE_PLC_DIRECTORY_URL=https://plc.tngl.boltless.dev
6969+```