Wiki
Getting started

Development setup

Run the monorepo from a checkout to build, customize, and contribute.

This is the path for working on Wiki. If you only want to run it, use the self-hosting guide instead.

Prerequisites

  • Node.js LTS
  • pnpm 10 — pinned via packageManager; run corepack enable to pick it up automatically
  • Docker — for the local PostgreSQL database
  • Bun — runs the server and tui dev scripts

Install and start the database

Install dependencies

pnpm install

This also installs the lefthook git hooks that lint and format staged files on commit.

Start PostgreSQL

pnpm db:start

Runs Postgres via Docker Compose, detached, bound to 127.0.0.1:5432.

Configure the apps

Copy the example env files and fill in values:

cp apps/server/.env.example apps/server/.env
cp apps/web/.env.example apps/web/.env

See the configuration reference for what each variable does.

Apply the schema

pnpm db:push

Pushes the Drizzle schema directly to your local database — the fast path for development.

Run the apps

pnpm dev

Starts everything: web on :3001, server on :3000, collab on :1234. Open http://localhost:3001 and register — onboarding creates your first organization.

Running a single app

pnpm dev:web        # web only
pnpm dev:server     # server only
pnpm dev:collab     # collab service only
pnpm dev:tui        # terminal installer / ops UI

Checks

Run these before opening a pull request — CI runs the same set:

pnpm test           # Vitest, via Turborepo
pnpm check-types    # TypeScript across every package
pnpm check          # oxlint + oxfmt

Database scripts

ScriptDescription
pnpm db:pushPush the schema directly (dev shortcut)
pnpm db:generateGenerate SQL migrations from schema changes
pnpm db:migrateApply pending migrations
pnpm db:studioOpen Drizzle Studio
pnpm db:stopStop the Postgres container
pnpm db:downRemove the Postgres container

db:push is for development only. Production installs apply versioned SQL migrations automatically. See Updates.

Next steps

On this page