A real-time video chat application built with Django, Django Channels, and WebRTC.
- Text chat functionality
- Video chat using WebRTC
- Real-time communication with WebSockets
- Backend: Django, Django Channels, Django REST Framework
- WebSockets: Django Channels (ASGI)
- Database: PostgreSQL (production), SQLite (development)
- Deployment: Render
This application is configured for easy deployment on Render.com.
- Create a Render account at render.com
- Fork or clone this repository to your GitHub account
-
Connect your GitHub repository to Render
- In your Render dashboard, click "New" and select "Blueprint"
- Connect your GitHub account and select this repository
- Render will automatically detect the
render.yaml
configuration
-
Configure Environment Variables
- Render will create the necessary services based on the
render.yaml
file - Add the following environment variables in the Render dashboard:
SECRET_KEY
: A secure random string for DjangoDEBUG
: Set to "False" for productionRENDER_EXTERNAL_HOSTNAME
: Your Render app URL (automatically set by Render)
- Render will create the necessary services based on the
-
Deploy
- Render will automatically deploy your application
- The build process will:
- Install dependencies from
requirements.txt
- Run database migrations
- Collect static files
- Start the Daphne ASGI server
- Install dependencies from
If you prefer to deploy manually:
-
Create a new Web Service in Render
-
Connect your GitHub repository
-
Configure the following settings:
- Environment: Python
- Build Command:
./build.sh
- Start Command:
daphne -p $PORT -b 0.0.0.0 zoom_clone.asgi:application
- Add the required environment variables
-
Create a PostgreSQL database in Render and link it to your web service
- Clone the repository
- Create a virtual environment:
python -m venv venv
- Activate the virtual environment:
- Windows:
venv\Scripts\activate
- macOS/Linux:
source venv/bin/activate
- Windows:
- Install dependencies:
pip install -r requirements.txt
- Create a
.env
file based on.env.sample
- Run migrations:
python manage.py migrate
- Start the development server:
python manage.py runserver
- Text Chat:
ws://<domain>/ws/chat/<room_name>/
- Video Chat:
ws://<domain>/ws/video/<room_name>/