Getting Started
QA Hub is available as a cloud-hosted service or a self-hosted Docker deployment.
Cloud (recommended)
Sign up at qahub.cloud → Create an account. Your workspace is created immediately; a QA Hub administrator approves it before you gain full access (usually within minutes on the cloud plan).
Self-hosted with Docker Compose
Prerequisites
- Docker Engine 24+ and Docker Compose v2+
- 1 GB RAM minimum (2 GB recommended)
- A domain name if you plan to expose it publicly
1. Clone the repository
git clone https://github.com/your-org/qa-hub.git
cd qa-hub
2. Configure environment variables
cp .env.example .env
Open .env and set the two required variables:
# PostgreSQL connection — the Docker Compose default below works out of the box
DATABASE_URL=postgresql://qahub_user:qahub_password@localhost:5432/qa_hub?schema=public
# Encryption key for AI API keys stored in the database — must be at least 32 characters
APP_SECRET=replace-this-with-a-long-random-string-at-least-32-chars
Optional variables:
# Public URL — used in password-reset emails and OAuth callbacks
NEXT_PUBLIC_APP_URL=https://qa.your-company.com
# SMTP — if unset, email flows degrade gracefully (no emails are sent)
SMTP_HOST=smtp.example.com
SMTP_PORT=587
SMTP_USER=no-reply@example.com
SMTP_PASS=your-smtp-password
SMTP_FROM="QA Hub <no-reply@example.com>"
3. Start the stack
docker-compose up -d
This starts PostgreSQL and the QA Hub application. The database schema is applied automatically on first boot — no manual migration step needed.
4. Open the app
Navigate to http://localhost:3000. On first run, the registration page appears.
First login
- Go to Register and create your account with name, email, and password.
- Your account starts as Pending. A SUPER_ADMIN must approve it before you can log in.
- Once approved, log in — you land on the main dashboard.
On a brand-new self-hosted installation there are no SUPER_ADMINs yet. Connect directly to the database and update your user's tenant status:
UPDATE "Tenant" SET status = 'ACTIVE' WHERE id = '<your-tenant-id>';
After that, log in normally. Your account now has the QA_MANAGER role and can invite team members.