> ## Documentation Index
> Fetch the complete documentation index at: https://docs.jaasskills.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Running the stack

> From zero to a signed-in local environment

All three services are optional relative to one another — `jaas-ui` runs standalone against whatever `JAAS_API_URL` points at, including a backend it didn't start itself.

## Full stack, from jaas-ui

```bash theme={null}
cp .env.local.example .env.local   # fill in AUTH_SECRET, AUTH_GOOGLE_ID/SECRET
./run.sh                            # starts guardrails -> api -> web

./run.sh status                     # check all three
./run.sh logs api                   # tail one service's logs
./run.sh stop                       # stop everything
```

By default this expects `../jaas-skills` and `../jaas_guardrail` as sibling checkouts. Override the paths with `JAAS_BACKEND_DIR` / `JAAS_GUARDRAILS_DIR`, or set either to an empty string to skip starting it — useful if a backend is already running elsewhere (point `JAAS_API_URL` at it instead). Run `./run.sh --help` for the full list of overrides.

## Backend only

```bash theme={null}
cd jaas-skills
uv sync --extra dev
./run.sh          # API on :8027, guardrails on :8028 if the sibling exists
```

## Frontend-only work

No backend is required to start the dev server — only to exercise a page that calls it.

```bash theme={null}
npm run dev     # localhost:3027, no backend needed
npm run build
npm run lint
```
