Set up a checkout
The local development stack contains Postgres, the control plane, and the web app. It intentionally has no node agent: the agent needs a Linux GPU host, so a local checkout is for UI and API work unless your workstation is also configured as a fleet host.
-
Clone the repository and its submodules.
Terminal window git clone --recurse-submodules https://github.com/accreleus/quasar.gitcd quasar -
Read the project contracts.
Terminal window less CLAUDE.mdless AGENTS.mdmake help -
Initialise the checkout.
Terminal window make initThis is idempotent. It initialises the protocol submodule, builds the containerised development toolchain, and checks the environment. It never overwrites an existing
.env. -
Check the environment and configuration.
Terminal window make doctormake config-check -
Start the local agentless stack.
Terminal window make upmake status
Use make dev-web for the Vite development loop and make dev-cp to run the Go
control plane against an ephemeral Postgres database. Stop the local stack with
make down; its volumes are preserved.
Worktrees and parallel checkouts
Section titled “Worktrees and parallel checkouts”Each worktree gets a derived QUASAR_INSTANCE, its own Compose project, a
dedicated ten-port block, and an ephemeral test database. Do not hardcode ports,
container names, or Compose project names in new tooling. Use the helpers under
scripts/dx/ and expose routine workflows through the root Makefile.
Working on this site
Section titled “Working on this site”cd sitenpm cinpm run devBuild the production site with npm run build. Keep user and operator material
outside this developer section; implementation and contribution material belongs
here or in the repository’s canonical docs/ tree.
The build reads protocol/openapi.yaml to generate the
Control-plane API reference, so it needs the protocol
submodule present. make init handles that; in a checkout cloned without
--recurse-submodules, run git submodule update --init protocol first. The
build says so if it is missing.