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/bluewave-labs/verifywise/develop/install.sh
curl -O https://raw.githubusercontent.com/bluewave-labs/verifywise/develop/.env.prod

2. Edit environment variables

Open .env.prod and change the values below. Everything else has sensible defaults.

# Your server's IP or domain (replace localhost)
BACKEND_URL=http://your-server-ip:3000
FRONTEND_URL=http://your-server-ip:8080

# Generate a JWT secret: openssl rand -base64 32
JWT_SECRET=your-generated-secret-here

# Pick a strong database password
POSTGRES_PASSWORD=your-secure-password

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_URLURL where the API is reachable (default: http://localhost:3000)
FRONTEND_URLURL where the web app is served (default: http://localhost:8080 in prod)
JWT_SECRETSecret for signing access and refresh tokens
POSTGRES_PASSWORDPostgreSQL password
POSTGRES_DBDatabase name (default: verifywise)
REDIS_HOSTRedis hostname (default: localhost)

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