Setup Environment Variables
TestoQA uses environment variables to configure the application for different environments such as local, development, staging, and production.
Create your environment file
Copy the example file and customize it:
cp .env.example .envExample .env file
# --------------------------------------------------
# App
# --------------------------------------------------
APP_NAME=TestoQA
APP_ENV=development
# Base URL (used on both server & client)
NEXT_PUBLIC_BASE_URL=http://localhost:3000
# --------------------------------------------------
# Database
# --------------------------------------------------
# Docker / local Postgres example
DATABASE_URL=postgres://<user>:<password>@<host>:5432/<database>
# --------------------------------------------------
# Authentication
# --------------------------------------------------
# Generate using: openssl rand -base64 32
AUTH_SECRET=
AUTH_URL=http://localhost:3000/api/auth
# Admin login password (default: teamtesto)
TEAM_TESTO_ADMIN_PASSWORD=
# --------------------------------------------------
# Execution Status Configuration
# --------------------------------------------------
EXECUTION_STATUS_LIST=pending,passed,failed,skipped,blocked
DEFAULT_EXECUTION_STATUS=pending
SUCCESSFUL_EXECUTION_STATUS_LIST=passed
UNSUCCESSFUL_EXECUTION_STATUS_LIST=failed,blocked
# --------------------------------------------------
# OAuth Providers (optional)
# --------------------------------------------------
AUTH_GOOGLE_ID=
AUTH_GOOGLE_SECRET=
AUTH_GITHUB_ID=
AUTH_GITHUB_SECRET=
# --------------------------------------------------
# SMTP (Email)
# --------------------------------------------------
SMTP_HOST=
SMTP_PORT=
SMTP_USER=
SMTP_PASS=
SMTP_SECURE=false
SMTP_FROM="TestoQA <noreply@teamtesto.com>"
# --------------------------------------------------
# Pusher (Realtime updates)
# --------------------------------------------------
PUSHER_APP_ID=
NEXT_PUBLIC_PUSHER_APP_KEY=
PUSHER_APP_SECRET=
NEXT_PUBLIC_PUSHER_APP_CLUSTER=
PUSHER_DEBUG=falseEnvironment Variable Details
APP_ENV
Defines the current runtime environment.
Common values:
developmentstagingproductiontest
APP_ENV=productionUsed to toggle environment-specific behavior.
APP_NAME
Human-readable application name.
APP_NAME=TestoQANEXT_PUBLIC_BASE_URL
Base URL of the application.
NEXT_PUBLIC_BASE_URL=http://yourdomain.com⚠️ Variables prefixed with
NEXT_PUBLIC_are exposed to the browser.
Database
DATABASE_URL
PostgreSQL connection string.
DATABASE_URL=postgres://<user>:<password>@<host>:5432/<database>Docker example (from docker-compose.yml):
DATABASE_URL=postgres://postgres:postgres@postgres:5432/testoqaAuthentication
AUTH_SECRET
Secret key used by the authentication system.
Generate using:
openssl rand -base64 32Works on:
- Linux
- macOS
- Windows (WSL or Git Bash)
Windows users without OpenSSL can generate one online: 👉 https://generate-secret.vercel.app/32
AUTH_URL
API route handling authentication callbacks.
AUTH_URL=http://yourdomain.com/api/authTEAM_TESTO_ADMIN_PASSWORD
Password for the default admin account.
TEAM_TESTO_ADMIN_PASSWORD=your-secure-password🔐 Change this in production
Execution Status Configuration
Controls how test execution results are grouped.
| Variable | Description |
|---|---|
EXECUTION_STATUS_LIST | All allowed execution statuses |
DEFAULT_EXECUTION_STATUS | Default status for new executions |
SUCCESSFUL_EXECUTION_STATUS_LIST | Statuses treated as successful |
UNSUCCESSFUL_EXECUTION_STATUS_LIST | Statuses treated as failed |
Any execution status not listed in EXECUTION_STATUS_LIST is treated as custom or undefined.
OAuth Providers (Optional)
Enable social login providers.
AUTH_GOOGLE_ID=
AUTH_GOOGLE_SECRET=GitHub
AUTH_GITHUB_ID=
AUTH_GITHUB_SECRET=SMTP (Email Configuration)
Used for transactional emails (password reset, notifications, etc.).
SMTP_HOST=smtp.yourprovider.com
SMTP_PORT=587
SMTP_USER=your-user
SMTP_PASS=your-password
SMTP_SECURE=false
SMTP_FROM="TestoQA <noreply@teamtesto.com>"Pusher (Realtime Features)
Used for realtime updates and live execution status.
PUSHER_APP_ID=
NEXT_PUBLIC_PUSHER_APP_KEY=
PUSHER_APP_SECRET=
NEXT_PUBLIC_PUSHER_APP_CLUSTER=
PUSHER_DEBUG=false⚠️
NEXT_PUBLIC_PUSHER_APP_KEYandNEXT_PUBLIC_PUSHER_APP_CLUSTERare exposed to the client.