User guideGetting startedInstalling VerifyWise
Getting started

Installing VerifyWise

Step-by-step guide to deploy VerifyWise in your environment.

Setup time: 20-30 minutes

Prerequisites

VerifyWise runs on your infrastructure. Before you start, make sure you have these in place:

Server

  • •Linux server (Ubuntu 20.04+ recommended)
  • •2 GB RAM minimum, 2 CPU cores
  • •20 GB free disk space

Software

  • •Docker and Docker Compose (production)
  • •Node.js 22 and npm (development only)
  • •Git

Networking

  • •Port 3000 (backend API)
  • •Port 8080 (frontend, production) or 5173 (frontend, development)
  • •Port 5432 for PostgreSQL and 6379 for Redis (can be internal-only)

Pick a deployment method

Production (Docker Compose)

One install script, everything containerized. Use this unless you plan to modify the source code.

Development (npm)

Frontend and backend run separately with hot reload. Use this if you want to contribute or customize.

Production setup

1. Download the install files

mkdir verifywise && cd verifywise
curl -O https://raw.githubusercontent.com/verifywise-ai/verifywise/develop/install.sh

2. Edit environment variables

.env.prod is not published in the repository, so create it yourself in the same folder as install.sh. The installer checks every secret below and refuses to start any container while one is empty.

# Database
DB_USER=verifywise
DB_PASSWORD=your-secure-password
DB_NAME=verifywise
DB_PORT=5432

# Ports published on the host
BACKEND_PORT=3000
FRONTEND_PORT=8080

# First admin account
SUPERADMIN_EMAIL=admin@example.com
SUPERADMIN_PASSWORD=your-admin-password

# Secrets: generate each with openssl rand -base64 32
JWT_SECRET=
REFRESH_TOKEN_SECRET=
ENCRYPTION_KEY=
ENCRYPTION_PASSWORD=
AI_GATEWAY_INTERNAL_KEY=
EVAL_SERVER_INTERNAL_KEY=

# Encryption algorithm
ENCRYPTION_ALGORITHM=aes-256-cbc

MOCK_DATA_ON=false

Do not set BACKEND_URL or FRONTEND_URL here. Compose wires the services together internally and derives both from BACKEND_PORT and FRONTEND_PORT.

3. Run the installer

chmod +x ./install.sh
./install.sh

The script pulls Docker images, creates the database and starts all services. When it finishes, open your FRONTEND_URL in a browser.

Development setup

This runs frontend and backend separately with hot reload. You'll need 2 terminal windows (3 if you want the BullMQ worker for background jobs).

1. Clone and install

git clone https://github.com/bluewave-labs/verifywise.git
cd verifywise

cd Clients && npm install
cd ../Servers && npm install

2. Start PostgreSQL and Redis

The easiest way is Docker containers:

docker run -d --name mypostgres -p 5432:5432 \
  -e POSTGRES_PASSWORD=your_password postgres

docker run -d --name myredis -p 6379:6379 redis

docker exec -it mypostgres psql -U postgres -c "CREATE DATABASE verifywise;"

3. Configure and start

# Copy the dev environment file
cp .env.dev Servers/.env

# Terminal 1: backend with auto-restart
cd Servers && npm run watch

# Terminal 2: frontend with hot reload
cd Clients && npm run dev

Frontend: http://localhost:5173. Backend API: http://localhost:3000.

Environment variables reference

VariableDescription
BACKEND_PORTPort the API is published on (default: 3000)
FRONTEND_PORTPort the web app is published on (default: 8080)
JWT_SECRETSecret for signing access tokens
REFRESH_TOKEN_SECRETSecret for signing refresh tokens
DB_USERPostgreSQL user
DB_PASSWORDPostgreSQL password. Compose passes this to the database as POSTGRES_PASSWORD, so set DB_PASSWORD, not POSTGRES_PASSWORD
DB_NAMEDatabase name (default: verifywise)
SUPERADMIN_EMAILEmail address of the first admin account
SUPERADMIN_PASSWORDPassword for the first admin account

First login

VerifyWise ships with no default accounts. The first time you open the app, you'll see a registration page where you create the admin account.

  1. Open your VerifyWise URL in a browser
  2. Fill in the admin registration form
  3. Log in with the credentials you just created
  4. You'll land on the dashboard
Do this immediately
The registration page is open to anyone who can reach your URL until the first admin account exists. Don't leave the instance accessible without completing registration.

SSL setup

For production, put a reverse proxy (Nginx, Caddy, or your cloud load balancer) in front of VerifyWise and terminate TLS there. Free certificates are available through Let's Encrypt.

  1. Install Nginx (or Caddy) on your server
  2. Obtain a certificate for your domain (Certbot handles Let's Encrypt automatically)
  3. Configure the proxy to forward traffic to ports 3000 (API) and 8080 (frontend)
  4. Update BACKEND_URL and FRONTEND_URL in .env.prod to use https://
  5. Restart the services: docker compose restart
Next step
Read the dashboard guide to learn how the interface is organized, then follow the quick start to create your first use case.
PreviousWelcome to VerifyWise
NextNavigating the dashboard
Installing VerifyWise - Getting started - VerifyWise User Guide