Docs

Self-hosting

Isonomia is open-source and self-hostable. A community that needs full control over its data can run its own instance.

This is an orientation overview. The authoritative, version-specific instructions live in the repository README.

The stack

  • Front-end: Next.js 14 (App Router), React 18, TypeScript, Tailwind.
  • Backend: Node 18+ (TypeScript), Prisma, PostgreSQL, Redis.
  • Data / services: Supabase (Postgres + type generation), Upstash Redis and BullMQ for background jobs, Pinecone for vector search.
  • ML services: Python 3.11 micro-services deployed via Docker.

Prerequisites

  • Node.js 18 or later.
  • A PostgreSQL database (Supabase or self-managed).
  • A Redis instance (Upstash or self-managed) for background workers.
  • Credentials for the integrations you enable — LLM provider (OpenAI / DeepSeek), Stripe, Firebase, LiveKit, Supabase, AWS (S3 / KMS / SES), and Pinecone are read from environment variables.

Install and build

Clone the repository and install dependencies. The workspace package @app/sheaf-acl is built automatically before dev and build:

git clone https://github.com/rohan-k-mathur/mesh
cd mesh
yarn install

# Development server (runs the sheaf-acl build first)
npm run dev

# Production build and start
npm run build
npm run start

Database

Isonomia uses Prisma with a single large schema. Apply it to your database with db:push (not migrate dev):

# Push the schema to your database
npm run db:push

# Regenerate the Prisma client (also runs automatically on install)
npx prisma generate

Supabase type generation requires SUPABASE_PROJECT_ID and SUPABASE_ACCESS_TOKEN.

Background workers

Background jobs (confidence decay, re-embedding, source verification and archiving, knowledge-graph build, transport aggregation) run in a separate worker process that reads .env:

npm run worker

Verify and lint

npm run lint    # next lint
npm test        # jest unit tests

More

For the conceptual model behind what you are hosting, see Architecture and the argument graph documentation. For data-handling questions, see Privacy.