Skip to main content

From Source

Clone the repo and run everything locally. pnpm dev from the repo root starts Neo4j and PostgreSQL in Docker and the NestJS API + Vite dashboard as local Node.js processes — no manual database setup required.

pnpm dev starts:
● Neo4j 2026.01.4 — Docker container (bolt :7687, browser :7474)
● PostgreSQL 16 — Docker container (port :5432)
● NestJS API — Node.js process (port :3000, watch mode)
● Vite dashboard — Node.js process (port :3005)

Useful for contributors, debugging, or running unreleased features before they ship in a Docker image.

Prerequisites

ToolMinimum versionInstall
Node.js20nodejs.org
pnpm9npm i -g pnpm
Docker24+docker.com

Docker is required because pnpm dev spins up Neo4j and PostgreSQL via Docker Compose.


1. Clone the repository

git clone https://github.com/rush-db/rushdb.git
cd rushdb

2. Configure environment

cp platform/core/.env.example platform/core/.env

Open platform/core/.env and set at minimum:

RUSHDB_SELF_HOSTED=true
RUSHDB_LOGIN=admin
RUSHDB_PASSWORD=password

# Must be exactly 32 characters — generate: openssl rand -hex 32
RUSHDB_AES_256_ENCRYPTION_KEY=32SymbolStringForTokenEncryption

# These are auto-wired from Docker Compose — change only if using an external Neo4j
NEO4J_URL=bolt://localhost:7687
NEO4J_USERNAME=neo4j
NEO4J_PASSWORD=password

# PostgreSQL credentials must match the Compose defaults (or override both)
SQL_DB_TYPE=postgres
SQL_DB_URL=postgresql://rushdb:password@localhost:5432/rushdb

3. Install dependencies

pnpm install

4. Start dev

pnpm dev

This is equivalent to running concurrently:

ProcessCommandWhat it does
neo4j + postgresdocker compose upStarts both databases in containers
NestJS APInest start --watchCompiles and runs the backend; restarts on file changes
Vite dashboardpnpm dev in platform/dashboardHot-reloads the frontend

Open http://localhost:3000 and sign in with the credentials from .env.

First run

The first pnpm dev pulls Neo4j and PostgreSQL images — this takes a minute or two. Subsequent starts are fast because Docker caches the images.


Running tests

# Unit tests (from platform/core)
cd platform/core && pnpm run test

# Watch mode
pnpm run test:watch

# With coverage
pnpm run test:cov

E2E tests require a running Neo4j + RushDB instance — see the test README in packages/javascript-sdk.


Production build

# From repo root
pnpm build

# Then from platform/core
cd platform/core && pnpm run start:prod

The compiled output goes to platform/core/dist/. For production deployments prefer the Docker image — it includes the correct Node.js version and all runtime dependencies.