Giter VIP home page Giter VIP logo

miroslavpejic85 / mirotalkwebrtc Goto Github PK

View Code? Open in Web Editor NEW
237.0 4.0 49.0 771 KB

๐Ÿ›  MiroTalk's WebRTC rooms scheduler.

Home Page: https://webrtc.mirotalk.com

License: GNU Affero General Public License v3.0

JavaScript 67.34% Dockerfile 0.38% CSS 14.36% HTML 15.47% Shell 2.46%
admin-dashboard webrtc videomeeting collaboration conferencing self-hosted video-conferencing webrtc-demos mirotalk mongodb

mirotalkwebrtc's Introduction

MiroTalk WebRTC


MiroTalk WEB is a platform that allows for the management of an unlimited number of users. Each user must register with their email, username, and password, after which they gain access to their personal dashboard. Within the dashboard, users can manage their rooms and schedule meetings using the desired version of MiroTalk on a specified date and time. Invitations to these meetings can be sent via email, shared through the web browser, or sent via SMS.


Explore MiroTalk WEB


For demonstration purposes, below the credentials:


MiroTalk Description
๐Ÿš€ P2P Peer to peer real-time video conferences, optimized for small groups. Unlimited time, unlimited concurrent rooms each having 5-8 participants.
๐Ÿ† SFU Selective forwarding unit real-time video conferences, optimized for large groups. Unlimited time, unlimited concurrent rooms each having 8+ participants.
โœจ C2C Cam to cam (peer to peer) real-time video conferences, optimized for one to one. Unlimited time ,unlimited concurrent rooms each having 2 participants.
๐Ÿ“ก BRO Live broadcast (peer to peer) live video, audio and screen stream to all connected users (viewers). Unlimited time, unlimited concurrent rooms each having a broadcast and many viewers.

mirotalk-webrtc-admin


Join our community for questions, discussions, and support on Discord


Quick start

Install NodeJs.

# The project was tested with node version 18.16.0. So make sure to update the node version using nvm if you have multiple version installed.
# After updating the node version, you can verify using
$ node --version # v18.16.0

# Clone the project repo
$ git clone https://github.com/miroslavpejic85/mirotalkwebrtc.git

# Go to project dir
$ cd mirotalkwebrtc

# Copy .env.template to .env and customize it according to your needs
$ cp .env.template .env

# Copy config.template.js to config.js and customize it according to your needs
$ cp backend/config.template.js backend/config.js

MongoDb

mongo-db

Local MongoDB Deployment

To run MongoDB locally with Docker Compose, you can use the following commands:

Start the MongoDB container:

$ npm run mongo:up

Stop the MongoDB container:

$ npm run mongo:down

Cloud MongoDB Deployment (Optional)

If you prefer to deploy MongoDB in the cloud, especially through MongoDb Atlas.

Please remember to update the credentials in the .env file accordingly.

# MongoDB Configuration (https://www.mongodb.com/)
MONGO_URL=mongodb://${MONGO_USERNAME}:${MONGO_PASSWORD}@${MONGO_HOST}:${MONGO_PORT}
MONGO_DATABASE=mirotalk

User Email Verification (Optional)

email

By default, user email verification is enabled. If you wish to disable it, set EMAIL_VERIFICATION to false in the .env file. If you choose to keep email verification enabled, make sure to configure the email settings in the .env file accordingly.

# Email Configuration (https://support.google.com/mail/answer/185833?hl=en)
EMAIL_VERIFICATION=true
EMAIL_HOST=emailHost
EMAIL_PORT=emailPort
EMAIL_USERNAME=emailUsername
EMAIL_PASSWORD=emailPassword

Install dependencies and start the server

# Install dependencies
$ npm install

# Start the server
$ npm start

Open in browser: http://localhost:9000

Docker

docker

Repository: Docker hub

Install docker and docker-compose.

# Copy .env.template to .env and edit it
$ cp .env.template .env
# Copy config.template.js to config.js and edit it
$ cp backend/config.template.js backend/config.js
# Copy docker-compose.template.yml in docker-compose.yml and edit it if needed
$ cp docker-compose.template.yml docker-compose.yml
# Get official image from Docker Hub
$ docker pull mirotalk/webrtc:latest
# Create and start containers (-d as daemon)
$ docker-compose up

Open in browser: http://localhost:9000

Documentations
  • MongoDB Migrations: For MongoDB migrations follow this README.

  • Ngrok: You can start MiroTalk WEB directly from your local PC and make it accessible from any device outside your network by following these instructions.

  • Self-hosting: For self-hosting MiroTalk WEB on your own dedicated server, please refer to this comprehensive guide. It will provide you with all the necessary instructions to get your MiroTalk WEB instance up and running smoothly.

  • Rest API: You can check the swagger document at http://localhost:9000/api/v1/docs, or live here.

Hetzner & Contabo

Hetzner

This application is running for demonstration purposes on Hetzner, one of the best cloud providers and dedicated root servers.


Use my personal link to receive โ‚ฌโ 20 IN CLOUD CREDITS.


Contabo

Experience also top-tier German web hosting โ€“ dedicated servers, VPS, and web hosting at unbeatable prices. Reliable, secure, and backed by 24/7 support. Explore now here


To set up your own instance of MiroTalk WEB on a dedicated cloud server, please refer to our comprehensive self-hosting documentation. This guide will walk you through the process step by step, ensuring a smooth and successful deployment.

Support

You can show your support for MiroTalk's projects by considering sponsorship. By sponsoring MiroTalk on platforms like GitHub Sponsors, you can contribute to our ongoing work and help us continue to develop and improve the projects.

To support MiroTalk's projects, you can visit the sponsorship page at https://github.com/sponsors/miroslavpejic85. There, you will find the different sponsorship tiers available. You can choose a sponsorship level that suits your budget and desired level of support.

Sponsoring MiroTalk's projects not only helps us financially but also encourages our motivation and dedication to creating valuable software. Your sponsorship can enable us to allocate more time and resources towards the projects, leading to further enhancements, bug fixes, and new features.

Thank you for considering supporting MiroTalk's projects. Your sponsorship can make a positive difference and contribute to the success of our endeavors.

License

AGPLv3

MiroTalk WEB is free and open-source under the terms of AGPLv3 (GNU Affero General Public License v3.0). Please respect the license conditions, In particular modifications need to be free as well and made available to the public. Get a quick overview of the license at Choose an open source license.

To obtain a MiroTalk WEB license with terms different from the AGPLv3, you can conveniently make your purchase on CodeCanyon. This allows you to tailor the licensing conditions to better suit your specific requirements.


mirotalkwebrtc's People

Contributors

miroslavpejic85 avatar shivansh175 avatar vishalsharma2000 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

mirotalkwebrtc's Issues

UI Design enchancement

Can I enhance the UI of the Login and Register Page of the website under hacktoberfest?

Slide up and down icons showing at the same time

When freshly visiting the page client.html both the icons( Slide up and slide down ) were showing up simultaneously which i think is a bug. however it sorts out when any of them is clicked but on refreshing the page same issue arises again n again.

Screenshot 2023-10-05 150648

I think i can fix it...so please assign me this issue.

Feature Request: Disable email verification

Hey

I try to run mirotalk on a kubernetes cluster. My problem is I don't have a mail server to rely on for the verification mails.

An ENV var to switch this feature off would be very helpful.

Social login features

Social login features

Implementing social login features using Node.js typically involves leveraging OAuth and various OAuth providers like Facebook, Google, Twitter, GitHub, etc., to authenticate users. There are popular libraries like Passport.js that make this process relatively straightforward. Here's a general overview of how you might implement social login using Node.js:

Steps to Implement Social Login with Node.js:

  1. Set Up OAuth Providers:

    • Register your application with the OAuth provider(s) (e.g., Facebook, Google) to obtain client ID and secret.
    • Configure callback URLs for the OAuth flow.
  2. Initialize Node.js Project:

    • Create a Node.js project and initialize it using npm init.
  3. Install Required Packages:

    • Install necessary packages, especially Passport.js and the passport strategy for the specific OAuth provider(s) you intend to use.
  4. Configure Passport.js:

    • Initialize Passport.js and configure the strategy for the OAuth provider(s).
    • Implement Passport serialization and deserialization methods.
  5. Set Up Routes:

    • Define routes in your Node.js application to handle the authentication process.
    • Create routes for login, logout, and OAuth callback.
  6. Implement Authentication Middleware:

    • Create middleware to check if the user is authenticated for protecting routes that need authentication.
  7. Frontend Integration:

    • Create frontend components (e.g., buttons) that initiate the social login process.

Example Using Passport.js (with Google OAuth):

const express = require('express');
const passport = require('passport');
const GoogleStrategy = require('passport-google-oauth20').Strategy;

const app = express();

passport.use(new GoogleStrategy({
    clientID: GOOGLE_CLIENT_ID,
    clientSecret: GOOGLE_CLIENT_SECRET,
    callbackURL: '/auth/google/callback'
  },
  function(accessToken, refreshToken, profile, done) {
    // You can handle the retrieved user profile or create a new user here
    // This function is where you'd typically save the user to a database
    return done(null, profile);
  }
));

app.get('/auth/google',
  passport.authenticate('google', { scope: ['profile', 'email'] })
);

app.get('/auth/google/callback', 
  passport.authenticate('google', { failureRedirect: '/login' }),
  function(req, res) {
    // Successful authentication, redirect to success page or perform other actions
    res.redirect('/success');
  }
);

app.listen(9000, () => {
  console.log('Server is running on port 9000');
});

This is a basic setup using Passport.js with the Google OAuth strategy.
You'd need to adapt this code to your specific needs and integrate it with your backend and frontend accordingly.

Remember to secure sensitive information such as client secrets and keys. Storing them in environment variables is recommended.

The process might vary slightly based on the OAuth provider and the strategy you're implementing, but the fundamentals usually remain the same.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.