Skip to main content

Introduction

Neuron Meet is a full-stack video conferencing application built with NestJS (backend) and React + Vite (frontend). This guide covers various deployment options to get your instance running in production.

Architecture

Neuron Meet consists of three main components:
  • Frontend (Client): React application built with Vite, handles UI and WebRTC connections
  • Backend (Server): NestJS application with REST API and WebSocket support for real-time communication
  • Database: PostgreSQL database managed with Prisma ORM
┌─────────────┐
│   Client    │ (React + Vite)
│  Port 80    │
└──────┬──────┘

       │ HTTP/WS

┌──────▼──────┐
│   Server    │ (NestJS)
│  Port 3001  │
└──────┬──────┘

       │ Prisma

┌──────▼──────┐
│  PostgreSQL │
│  Port 5432  │
└─────────────┘

Deployment Options

Docker

Deploy the entire stack with Docker Compose for easy orchestration

Vercel

Deploy the frontend to Vercel’s edge network

Railway

Deploy the full application on Railway with automatic provisioning

Manual

Deploy to your own VPS or server infrastructure

Prerequisites

Before deploying Neuron Meet, ensure you have:
Node.js 18.0.0 or higher
PostgreSQL 15 or higher (or a Supabase account)
Domain name with SSL/TLS certificate (recommended for production)
TURN server credentials (optional but recommended for production)

Docker Deployment

The quickest way to deploy Neuron Meet is using Docker Compose:
1

Clone the repository

git clone <repository-url>
cd neuron-meet
2

Configure environment variables

Copy the example environment file and update the values:
cp .env.example .env
Make sure to change JWT_SECRET to a strong random value in production!
3

Start the services

docker-compose up -d
This will start:
  • PostgreSQL on port 5432
  • Backend server on port 3001
  • Frontend client on port 80
4

Access the application

Open your browser and navigate to http://localhost (or your server’s IP address)

Vercel Deployment

Vercel is ideal for deploying the frontend client:
1

Install Vercel CLI

npm install -g vercel
2

Deploy the client

vercel
The configuration is already set in vercel.json which includes:
  • Client build from client/dist
  • SPA routing rewrites
  • Security headers (X-Content-Type-Options, X-Frame-Options, X-XSS-Protection)
3

Configure environment variables

Set the following environment variables in the Vercel dashboard:
  • VITE_API_URL: Your backend API URL
  • VITE_WS_URL: Your backend WebSocket URL
You’ll need to deploy the backend separately (Railway, VPS, etc.) and update the frontend environment variables to point to it.

Railway Deployment

Railway can host the full stack application:
1

Create a Railway account

Sign up at railway.app
2

Create a new project

  • Add a PostgreSQL database service
  • Add a new service from your GitHub repository
3

Configure environment variables

Set all required environment variables in the Railway dashboard.Railway will automatically provide DATABASE_URL from the PostgreSQL service.
4

Deploy

Railway will automatically deploy based on the configuration in railway.json:
  • Build command: npm run build:production
  • Start command: npm run start:production
  • Health check: /api/health

Manual Deployment

For custom infrastructure:
1

Set up PostgreSQL

Install PostgreSQL 15+ or use a managed service like Supabase.See Database Setup for details.
2

Install dependencies

npm run install:all
3

Configure environment

Create a .env file with all required variables.
4

Run database migrations

npm run db:migrate
5

Build the application

npm run build
6

Start the server

npm start
7

Serve the client

Use nginx, Apache, or any static file server to serve the client/dist directory.

Next Steps

Environment Variables

Configure all required environment variables

Database Setup

Set up and migrate your PostgreSQL database

Production Checklist

Secure and optimize for production

Build docs developers (and LLMs) love