LAPTOP-6WAY described two routes. The third, the public Plugin Studio (bun run laptop plugin-studio),
had only its compose profile and the command's help. It now has its own section: what the command
starts, the addresses, the admin password for publishing and PocketBase's dashboard, how the two
per-request addresses are set, and what to set while dx-maps' development has no public mode yet.
"Checked" records what was proven on 2026-09-29, the halves separately, and says the one command
end to end has not been run yet.
The subdomain and Plugin Studio routes both publish the dx-maps container on port 4616. Starting one
while the other runs failed inside docker compose with a port error. bun run laptop now stops first
and says to run bun run laptop down.
A second compose profile beside "subdomain":
- dx-maps-studio: the dx-maps container with ACCESS=public on research.localhost:4616, the
PUBLIC Plugin Studio. There is no sign-in provider; publishing and PocketBase's dashboard ask
for ADMIN_PASSWORD. Its /cdn is built from main with EMBED_BASE_URL=http://research.localhost:4616/cdn.
- dxlife-studio: this site's research-gallery-plugin-studio branch on :4614. Its two settings,
NUXT_PUBLIC_RESEARCH_GALLERY_URL and NUXT_PUBLIC_DX_MAPS_BASE (names agreed with dx-base), point
at the Studio and its /cdn, and are read at run time.
The two routes use separate data volumes. .env.laptop gains a generated ADMIN_PASSWORD (never
printed). laptop-dxlife.sh takes DXLIFE_PORT (4613 subdomain, 4614 plugin-studio).
The Research Gallery now has two routes: drop-in (this site alone, no Docker, the default)
and subdomain (the dx-maps team container with PocketBase). The CDN route is retired.
compose.laptop.yaml runs the subdomain route on 127.0.0.1:
- dx-maps: the image the team's server runs, built from dx-maps' root Dockerfile. It carries
the Plugin Studio, PocketBase and the research site on research.localhost:4615, and
publishes main by itself.
- a local sign-in provider with admin, designer and plain-member users. It runs inside dx-maps'
network, so localhost:4620 is the same address for the browser and the container.
- this site on the subdomain branch, pointed at the research site.
scripts/laptop.ts makes .env.laptop (secrets, never committed), checks Docker's memory (and
names what to close or the lighter route), starts the three, waits for each and prints the
addresses. LAPTOP-6WAY.md describes the two routes.
Checked on a Docker host tunnelled to a laptop-like browser: 20/20 route checks (sign-in,
roles, PocketBase's team API, the research site, /regions) and check-embed-6way 7/7 at 6/6.