Prerequisites
Before you begin, ensure you have the following installed:- Node.js 18.0.0 or higher - Download Node.js
- PostgreSQL 14 or higher - Download PostgreSQL or use Supabase
- Git - Download Git
Installation
Install dependencies
Install dependencies for both client and server:This will install all required packages including React, NestJS, Prisma, Socket.io, and other dependencies.
Set up environment variables
Create a Then edit Option 2: Supabase (Recommended for easy setup)
.env file in the server directory:server/.env with your configuration:Option 1: Local PostgreSQL (Docker)If using Supabase, get your connection string from: Supabase Dashboard → Project Settings → Database → Connection string
Set up the database
Initialize the database schema using Prisma:This command will:
- Connect to your PostgreSQL database
- Create all required tables (User, Room, RoomSettings, Participant, Message)
- Set up indexes and relationships
Verify your installation
- Open your browser and navigate to
http://localhost:5173 - Create an account by clicking “Sign Up” and filling in your details
- Create a meeting room from your dashboard
- Join the meeting and test your camera and microphone
- Try features like screen sharing, chat, and participant controls
Development workflow
Available scripts
All scripts can be run from the root directory:| Script | Description |
|---|---|
npm run dev | Start both client and server in development mode |
npm run dev:client | Start only the React frontend |
npm run dev:server | Start only the NestJS backend |
npm run build | Build both client and server for production |
npm run db:generate | Generate Prisma client after schema changes |
npm run db:push | Push schema changes to database (development) |
npm run db:migrate | Create and run migrations (production) |
Project structure
Troubleshooting
Database connection errors
Database connection errors
Error:
Can't reach database serverSolutions:- Verify your
DATABASE_URLis 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
Port already in use
Port already in use
Error:
Port 3001 is already in useSolutions:- Change the
PORTvariable in your.envfile - Kill the process using the port:
lsof -ti:3001 | xargs kill -9(macOS/Linux) - Or use a different port in both
server/.envand updateVITE_API_URL
WebRTC connection issues
WebRTC connection issues
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
Module not found errors
Module not found errors
Error:
Cannot find module '@nestjs/core' or similarSolutions:- Delete
node_modulesand 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