Configuration
WrightTest is configured through environment variables and Docker services.
This page explains the main configuration areas you should check after installation.
If you have not installed WrightTest yet, start with Installation.
Configuration file
In a local Docker setup, WrightTest uses an .env file in the repository root.
Create it from the example file:
cp .env.example .envAfter changing .env, restart the containers:
docker compose down
docker compose up --buildSome changes may only require a restart, but rebuilding is the safest option during local setup.
Main configuration areas
WrightTest has several parts that need to work together:
- frontend web application
- backend API
- database
- Redis queue
- browser runner
- noVNC recorder
- storage for screenshots and traces
Application URLs
Check that the frontend and backend URLs match your local setup.
Typical local URLs from .env.example are:
- Frontend:
http://localhost:5173 - Backend API:
http://localhost:3000
If the frontend opens but data is missing, the API URL is usually the first thing to check.
Database
WrightTest stores projects, checks, runs, schedules, environments, and alerts in the database.
The example file uses:
DATABASE_URLPOSTGRES_PORT
Make sure the database service is running:
docker compose psIf the database container is not healthy, check logs:
docker compose logsOr inspect the postgres service directly:
docker compose logs postgresDo not remove Docker volumes unless you are sure you want to delete local data:
docker compose down -vThis command can remove local database data.
Redis and queue
WrightTest uses Redis-backed background jobs for running browser checks and schedules.
Redis is required for:
- manual check runs
- scheduled runs
- suite runs
- background execution
- runner queue processing
The example file uses:
REDIS_HOSTREDIS_PORT
If checks stay pending or do not start, check that Redis and the backend service are running.
docker compose ps
docker compose logs redis
docker compose logs backendBrowser runner
The backend service executes browser checks using Playwright.
It is responsible for:
- opening browser contexts
- executing check steps
- collecting step results
- taking screenshots
- saving Playwright traces
- marking runs as passed or failed
The example file uses:
NODE_ENVWEBHOOK_SECRETJWT_SECRETJWT_EXPIRES_INSCREENSHOTS_DIRTRACES_DIR
There is no separate worker container in the current Docker Compose setup. Manual runs, scheduled runs, queue processing, and scheduler logic are handled by the backend service.
If browser runs fail, check:
- backend logs
- browser availability
- Playwright installation
- access to the target URL
- environment variables used by the check
noVNC recorder
WrightTest uses a noVNC-based browser recording flow to let users interact with a real browser from the web UI.
The recorder depends on:
- a running browser container or virtual display
- noVNC service
- correct internal service URLs
- available ports
- browser access from the frontend
The example file uses:
VNC_PORTNOVNC_PORTVITE_NOVNC_URLVITE_ENABLE_NOVNC
If the recorder does not open:
- check that the noVNC service is running
- check container logs
- make sure required ports are not blocked
- restart the stack
docker compose down
docker compose up --buildScreenshots and traces
Run results may include:
- per-step screenshots
- Playwright trace archives
- failure summaries
- raw errors
Make sure the services have write access to the storage location used for run artifacts.
The example file uses:
SCREENSHOTS_DIRTRACES_DIR
If screenshots or traces are missing, check:
- backend logs
- storage path configuration
- file permissions
- whether the run failed before browser tracing started
App environment variables vs project environments
There are two different types of configuration in WrightTest.
App environment variables
These are configured in .env.
They control the application itself:
- frontend URL
- backend API URL
- database connection
- Redis connection
- authentication secret
- runner settings
- noVNC settings
Project environments
These are created inside the WrightTest UI in the Environments tab.
They are used inside browser checks.
Example:
BASE_URL=https://playwright.devThen in a check:
Start URL: {{BASE_URL}}Use app environment variables for infrastructure configuration.
Use project environments for check data, target URLs, usernames, passwords, and other reusable test values.
Browser support
WrightTest currently runs checks with Chromium.
Firefox and WebKit are not supported in the current version.
If your workflow requires Firefox or WebKit coverage, treat this as a current limitation and track roadmap updates.
Secrets
Use strong random values for authentication and signing secrets.
Do not commit .env files to Git.
Do not expose tokens, webhook URLs, bot tokens, or passwords in screenshots, traces, public logs, or support requests.
If a secret is leaked, rotate it immediately.
Restarting after configuration changes
After changing .env, restart the stack:
docker compose down
docker compose up --buildIf you only need to restart without rebuilding:
docker compose restartNext steps
After configuration, continue with: