Installing VerifyWise
Step-by-step guide to deploy VerifyWise in your environment.
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.prod2. 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-password3. Run the installer
chmod +x ./install.sh
./install.shThe 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 install2. 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 devFrontend: http://localhost:5173. Backend API: http://localhost:3000.
Environment variables reference
| Variable | Description |
|---|---|
| BACKEND_URL | URL where the API is reachable (default: http://localhost:3000) |
| FRONTEND_URL | URL where the web app is served (default: http://localhost:8080 in prod) |
| JWT_SECRET | Secret for signing access and refresh tokens |
| POSTGRES_PASSWORD | PostgreSQL password |
| POSTGRES_DB | Database name (default: verifywise) |
| REDIS_HOST | Redis 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.
- Open your VerifyWise URL in a browser
- Fill in the admin registration form
- Log in with the credentials you just created
- You'll land on the dashboard
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.
- Install Nginx (or Caddy) on your server
- Obtain a certificate for your domain (Certbot handles Let's Encrypt automatically)
- Configure the proxy to forward traffic to ports 3000 (API) and 8080 (frontend)
- Update
BACKEND_URLandFRONTEND_URLin.env.prodto usehttps:// - Restart the services:
docker compose restart