Skip to main content
Get your local development environment set up and run your first Neuron Meet video conference in just a few minutes.

Prerequisites

Before you begin, ensure you have the following installed:

Installation

1

Clone the repository

git clone https://github.com/Jasowills/Neuron-meet.git
cd Neuron-meet
2

Install dependencies

Install dependencies for both client and server:
npm run install:all
This will install all required packages including React, NestJS, Prisma, Socket.io, and other dependencies.
3

Set up environment variables

Create a .env file in the server directory:
cp server/.env.example server/.env
Then edit server/.env with your configuration:Option 1: Local PostgreSQL (Docker)
DATABASE_URL="postgresql://neuronmeet:neuronmeet@localhost:5432/neuronmeet"
DIRECT_URL="postgresql://neuronmeet:neuronmeet@localhost:5432/neuronmeet"
JWT_SECRET="your-super-secret-jwt-key-change-in-production"
JWT_EXPIRES_IN="7d"
PORT=3001
NODE_ENV=development
VITE_API_URL=http://localhost:3001
VITE_WS_URL=http://localhost:3001
Option 2: Supabase (Recommended for easy setup)
DATABASE_URL="postgresql://postgres.[project-ref]:[your-password]@aws-0-[region].pooler.supabase.com:6543/postgres"
DIRECT_URL="postgresql://postgres.[project-ref]:[your-password]@aws-0-[region].pooler.supabase.com:5432/postgres"
JWT_SECRET="your-super-secret-jwt-key-change-in-production"
JWT_EXPIRES_IN="7d"
PORT=3001
NODE_ENV=development
VITE_API_URL=http://localhost:3001
VITE_WS_URL=http://localhost:3001
If using Supabase, get your connection string from: Supabase Dashboard → Project Settings → Database → Connection string
4

Set up the database

Initialize the database schema using Prisma:
npm run db:push
This command will:
  • Connect to your PostgreSQL database
  • Create all required tables (User, Room, RoomSettings, Participant, Message)
  • Set up indexes and relationships
For production deployments, use migrations instead: npm run db:migrate
5

Start the development servers

Start both the backend and frontend servers:
npm run dev
This will concurrently start:
  • Backend (NestJS) on http://localhost:3001
  • Frontend (React) on http://localhost:5173
You should see output like:
[server] Nest application successfully started on port 3001
[client] VITE v5.0.10 ready in 234 ms
[client] ➜  Local:   http://localhost:5173/

Verify your installation

  1. Open your browser and navigate to http://localhost:5173
  2. Create an account by clicking “Sign Up” and filling in your details
  3. Create a meeting room from your dashboard
  4. Join the meeting and test your camera and microphone
  5. Try features like screen sharing, chat, and participant controls

Development workflow

Available scripts

All scripts can be run from the root directory:
ScriptDescription
npm run devStart both client and server in development mode
npm run dev:clientStart only the React frontend
npm run dev:serverStart only the NestJS backend
npm run buildBuild both client and server for production
npm run db:generateGenerate Prisma client after schema changes
npm run db:pushPush schema changes to database (development)
npm run db:migrateCreate and run migrations (production)

Project structure

Neuron-meet/
├── client/                 # React frontend
│   ├── src/
│   │   ├── components/    # React components
│   │   ├── pages/        # Page components (Home, Meeting, Dashboard)
│   │   ├── hooks/        # Custom React hooks
│   │   ├── lib/          # Utilities and helpers
│   │   └── store/        # Zustand state management
│   └── package.json
├── server/                # NestJS backend
│   ├── src/
│   │   ├── auth/         # Authentication module
│   │   ├── rooms/        # Room management
│   │   ├── users/        # User management
│   │   ├── signaling/    # WebRTC signaling gateway
│   │   └── chat/         # Real-time chat
│   ├── prisma/
│   │   └── schema.prisma # Database schema
│   └── package.json
└── package.json          # Root package.json with scripts

Troubleshooting

Error: Can't reach database serverSolutions:
  • Verify your DATABASE_URL is correct
  • Ensure PostgreSQL is running (if using local Docker)
  • Check firewall settings aren’t blocking port 5432
  • For Supabase, verify your project is active and credentials are correct
Error: Port 3001 is already in useSolutions:
  • Change the PORT variable in your .env file
  • Kill the process using the port: lsof -ti:3001 | xargs kill -9 (macOS/Linux)
  • Or use a different port in both server/.env and update VITE_API_URL
Problem: Video/audio not connecting between peersSolutions:
  • Ensure both browser and OS have granted camera/microphone permissions
  • Check that you’re using HTTPS in production (required for WebRTC)
  • Configure TURN server for production deployments (see .env.example)
  • Test in an incognito window to rule out browser extension conflicts
Error: Cannot find module '@nestjs/core' or similarSolutions:
  • Delete node_modules and reinstall: rm -rf node_modules client/node_modules server/node_modules && npm run install:all
  • Clear npm cache: npm cache clean --force
  • Ensure you’re using Node.js 18 or higher: node --version

Next steps

Explore features

Learn about video/audio, screen sharing, chat, and more

Deploy to production

Deploy Neuron Meet to Vercel, Railway, or your own infrastructure

API reference

Explore the REST and WebSocket API documentation

Architecture

Understand how Neuron Meet works under the hood

Build docs developers (and LLMs) love