# Try Pointsman with mock providers

[Quickstart](README.md) · [Dashboard tour](dashboard.md) · [Release notes](../release-status.md)

This walkthrough uses the repository's existing WireMock demonstration. It requires
Docker with Compose 2.24 or newer, `curl`, `jq`, `openssl`, and Bash. It needs network
access for initial images/dependencies and the embedding model, but no real model
provider credential. Use a fresh local evaluation stack with free ports 8080/3001.
The demo changes its own gateway settings and restarts that gateway; do not point it
at a shared or production installation.

## Prepare and start

From a checkout of the reviewed candidate, copy `docker/.env.example` to `docker/.env`.
Generate a pepper with `openssl rand -hex 32` and edit these entries:

```dotenv
POINTSMAN_AUTH_PEPPER=<generated-hex-value>
POINTSMAN_KEY_ENVIRONMENT=test
POINTSMAN_ADMIN_USERNAME=admin
POINTSMAN_ADMIN_PASSWORD=<choose-a-long-local-password>
OPENAI_API_KEY=dummy-key
ANTHROPIC_API_KEY=dummy-key
```

The placeholders satisfy bootstrap checks. Do not send requests to real models with
these credentials. Keep this file private and retain the pepper for the lifetime of
your local data. Follow the [quickstart's environment guidance](README.md#1-prepare-the-environment)
if stale shell exports override these entries.

```bash
docker compose --env-file docker/.env -f docker/docker-compose.yml up -d --build
curl --fail --show-error http://localhost:8080/actuator/health/readiness
```

Wait for readiness; if it does not succeed, inspect the gateway logs. Initial build
and model download time varies. No ten-minute setup guarantee is made.

## Run the existing demonstration

Export the same admin credentials you configured, then run the shipped script:

```bash
export POINTSMAN_ADMIN_USERNAME=admin
export POINTSMAN_ADMIN_PASSWORD='<same-local-password>'
bash scripts/demo-learning.sh
```

The script starts `demo-arms`, registers three local fixture providers, creates its
own organization and restricted key, sends 300 requests with feedback, and reports
the gateway's learned beliefs. It names only the local demonstration group. It
prints the non-default tuning settings and restores them on normal completion; do not add `--keep`
for this walkthrough. Observe the printed verdict rather than assuming that a
successful process or HTTP response establishes a routing benefit.

Open [localhost:3001](http://localhost:3001) with the same admin login. Inspect the
fixture providers, models, requests and routing beliefs. These deliberately designed
arms illustrate the feedback mechanism; they say nothing about real-model quality
or savings. Existing demonstration and packaged evidence is retained in the final
register. This documentation consolidation did not launch another traffic run.

## Stop while retaining data

If the script fails or is interrupted, its normal teardown may not run. Stop this
local stack using the command below; it preserves the data for inspection.

```bash
docker compose --env-file docker/.env -f docker/docker-compose.yml --profile demo down
```

Named volumes remain. The [deployment guide](../how-to/deploy.md) explains the supported
v1 profile, backups, recovery and counter-loss attestation. To make a real billable
request later, explicitly follow the separate [real-provider quickstart](README.md).
