Quick Start
Install your local Gostly stack, record one safe API interaction, and replay it without another upstream request.
Start with a safe upstream
Prerequisites
- Docker Engine running, with Docker Compose available.
- A Gostly account and your installation files from the account dashboard.
- An upstream reachable from inside the proxy container. On Docker Desktop, use
host.docker.internalfor a server on your Mac;localhostinside a container refers to that container.
See Install & Deploy for resource sizing, private environment setup, ports, and existing installations. Lite has no AI containers and is the default for active Pro trials. Full adds AI services and requires additional resources. Both use the same trial deadline; a paid subscription is required to continue after expiry.
Setup
Download your installation files
In your account dashboard, select Lite for your first record/replay workflow, then download the Compose file and private environment template. Choose Full explicitly when evaluating AI features. Keep the files together in a private installation directory. Follow the registry sign-in instructions shown there; use Docker's --password-stdin option so the token is not placed in a command argument.
The Lite stack includes:
ghost-postgres # local database ghost-migrate # one-shot database setup; exits after success ghost-web # local dashboard (3000) and control API (8000) ghost-proxy # HTTP proxy (8080)
Full adds ghost-inference and ghost-llamacpp for eligible Pro/Team licenses. The authenticated Compose endpoint defaults active trials to Lite; ?variant=full opts into Full and ?variant=lite selects Lite. Use the downloaded file as the authority for your installation and retain its server-selected image digests, service dependencies, and shared volumes. Stack selection does not extend a trial or change your license. Preserve the same private environment when switching stacks; compare changes before applying them to existing data.
Prepare the private environment
For a fresh installation, copy the downloaded template to .env, fill in your license and upstream settings, and set the local administrator credentials. Preserve the generated database passwords and tenant ID. Never replace an existing deployment's environment with a fresh template.
If you set GHOST_API_KEY for authenticated API access, pass the same private value to both ghost-web and ghost-proxy. Adding it to .env alone does not inject it into a service. See service authentication setup for the Compose entries. Keep password authentication enabled.
docker info docker compose config --quiet docker compose pull docker compose up -d docker compose ps -a
Wait for database setup to finish successfully and the serving containers to be ready. A running container alone does not prove that capture is ready.
Register the service and check capture readiness
Open your local operator dashboard at http://localhost:3000 and sign in with the administrator credentials from your installation. This dashboard is included in both Lite and Full and is separate from the hosted account dashboard.
Add your test service with its upstream URL and a host or path routing rule that matches the request your application sends. Select LEARN mode and wait for the service configuration to reach the proxy. If you see agent_not_ready, missing upstreams, or authentication errors, resolve them before recording. The routing examples cover host and path matching.
For HTTPS clients
Enable ENABLE_TLS_INTERCEPTION in the proxy environment, ensure its Compose configuration publishes port 8443, and trust the proxy CA in your test client. See TLS setup.
Record one interaction, then build and switch to MOCK
Point the test client at http://localhost:8080, keeping the host or path required by your service routing rule. Send the chosen request once. Confirm the expected status and body, one upstream request, and a capture assigned to your registered service.
In the service's dashboard, choose Build & switch to MOCK. This processes the captured traffic and switches that service to MOCK as part of the same transition. Wait for completion with the expected processed records and no error. Recording traffic alone is not a completed durable build. API users can follow Record & Replay.
Verify MOCK replay
Confirm the service is in MOCK in the local dashboard, then repeat the same request through the proxy. Compare its status and body with the captured response and confirm the upstream request count did not increase.
To verify replay survives a proxy restart, restart only the disposable test proxy after the successful build and repeat the check. Keep the library, routing settings, and other services in place. A successful in-memory replay alone does not establish replay after restart.
Sharing mocks across environments
Local traffic and replay files may retain upstream bodies, including user data. Keep them private by default. Share only a deliberately reviewed test library; never commit credentials or the cached license.
# .gitignore — private by default .env data/traffic/ data/mocks/ data/license_cache.json
For CI, reuse the generated stack and a reviewed library with the same service configuration. Verify ready state and explicit MOCK mode before running tests. See CI integration.