Wovain Docs

Getting started

Run wovain locally with pnpm, Docker Postgres and Varlock-managed environment variables.

Requirements

  • Node.js (see .nvmrc) and pnpm
  • Docker, for the local PostgreSQL (docker-compose.yml)

Run it

pnpm install
docker compose up -d      # local PostgreSQL
pnpm run dev              # web app and docs through Turborepo
AppPathPort
Web appapps/webNext.js default (3000)
Docsapps/fumadocs4000

Environment variables with Varlock

Each app owns a .env.schema file. Varlock validates the values at start-up and generates a typed src/env.ts, so code imports ENV instead of reading process.env.

The web app needs:

VariableMeaning
NODE_ENVdevelopment, production or test
BETTER_AUTH_SECRETAt least 32 characters; signs sessions
BETTER_AUTH_URLPublic URL of the web app
DATABASE_URLPostgreSQL connection string (Cloud SQL in production)

The docs app has one optional pair, OPENROUTER_API_KEY and OPENROUTER_MODEL, for the AI chat. Without the key the chat endpoint answers 503.

Provider keys for the integrations (Nebius, Qloo, Tavily, fal) are described on each integration page.

Database

Drizzle owns the schema in packages/db. Generate migrations with pnpm run db:generate. The auth tables are generated with pnpm run auth:generate; do not edit them by hand.

Before you commit

pnpm run check         # Ultracite: Oxlint and Oxfmt
pnpm run check-types
pnpm run knip

On this page