Giter Site home page Giter Site logo

bitsnaps / roomler Goto Github PK

View Code? Open in Web Editor NEW

This project forked from gjovanov/roomler

0.0 1.0 0.0 65.69 MB

Roomler - Multi-party Video Conferencing & Team Collaboration Tool using WebRTC (Janus Gateway)

Home Page: https://roomler.live

License: GNU Affero General Public License v3.0

JavaScript 65.95% Vue 33.24% Dockerfile 0.11% Shell 0.36% Handlebars 0.33% Stylus 0.01% SCSS 0.01%

roomler's Introduction

Roomler

Roomler.Live - Live video conferencing & collaboration tool using WebRTC (Janus Gateway)

It's like Slack on Crack and Microsoft Teams on Steroids. All that fully free and open source.

Roomler Intro

Features

MULTI PARTY CALLS POWERFUL CHAT ORGANIZED ROOMS
  • Video
  • Audio
  • Screen share
  • Encrypted
  • up to 50 call participants
  • Rich-text
  • File sharing
  • Emojis & Giphy's
  • Mentions
  • Reactions
  • Public Rooms
  • Private Rooms
  • Hierarchy of Rooms
  • User invite system
  • Owner, moderator & member roles

Technology stack

Architecture

Architecture

Prerequisites

Roomler requires:

  • docker engine being installed on your host machine
  • two docker networks being created
  • environment variables being setup
  • serveral micro services up and running

before we can start Roomler (both in development and production environemnt)

Docker network

Besides the default host Docker network, we need to create two addition bridge networks:

  1. docker network create frontend (used by containers roomler, nginx)
  2. docker network create backend (used by containers roomler, mongo, redis)
  3. on the existing host network janus and coturn will be attached

Microservice dependencies

Environment variables

You need to setup all your Required (even Optional if desired) environment variables, before you can run Roomler

Start Roomler App

Start in development mode

# install dependencies
$ npx lerna bootstrap

# Start API server (localhost:3001)
$ yarn run dev:api

# Start UI server (localhost:3000)
$ yarn run dev:ui

Start in production mode

# install dependencies
$ npx lerna bootstrap --scope roomler.ui

# build for production and launch server
$ yarn run build
$ yarn run start

Start in production mode using docker

Docker build

.scripts/build.sh

Docker release

.scripts/release.sh

Docker run

docker run -d --name roomler \
    --hostname roomler \
    --network backend \
    --restart always \
    -v /path_to_your_uploads_folder:/roomler/packages/ui/static/uploads \
    -e API_URL=https://roomler.live \
    -p 8082:3000 \
    -e DB_CONN=YOUR_DB_CONN \
    -e WS_SCALEOUT_ENABLED=true \
    -e WS_SCALEOUT_HOST=redis \
    -e SENDGRID_API_KEY=YOUR_SEND_GRID_KEY \
    -e FACEBOOK_ID=YOUR_FACEBOOK_ID \
    -e FACEBOOK_SECRET=YOUR_FACEBOOK_SECRET \
    -e GOOGLE_ID=YOUR_GOOGLE_ID \
    -e GOOGLE_SECRET=YOUR_GOOGLE_SECRET \
    -e GITHUB_ID=YOUR_GITHUB_ID \
    -e GITHUB_SECRET=YOUR_GITHUB_SECRET \
    -e LINKEDIN_ID=YOUR_LINKEDIN_ID \
    -e LINKEDIN_SECRET=YOUR_LINKEDIN_SECRET \
    -e MICROSOFT_ID=YOUR_MICROSOFT_ID \
    -e MICROSOFT_SECRET=YOUR_MICROSOFT_SECRET \
    -e TURN_URL=YOUR_TURN_URL \
    -e TURN_USERNAME=YOUR_TURN_USERNAME \
    -e TURN_PASSWORD=YOUR_TURN_PASSWORD \
    -e GIPHY_API_KEY=YOUR_GIPHY_KEY \
    -e GOOGLE_ANALYTICS_ID=YOUR_GOOGLE_ANALYTICS_ID \
    -e SUPER_ADMIN_EMAILS='["[email protected]"]' \
    -e WEB_PUSH_CONTACT="mailto: [email protected]" \
    -e WEB_PUSH_PUBLISH_KEY=YOUR_VAPID_PUBLIC_KEY \
    -e WEB_PUSH_PRIVATE_KEY=YOUR_VAPID_PRIVATE_KEY \
    -e NUXT_TELEMETRY_DISABLED=1 \
    gjovanov/roomler

# attach roomler container to backend network
docker network connect backend roomler

Start in production mode using docker-compose

docker-compose up - this will start the whole docker stack of services

Testing

Run API tests

# makes sure MongoDB is reachable based on /config/index.js (dbSettings)
$ yarn run test:api

Run E2E tests (TODO)

roomler's People

Contributors

abreualexandre avatar gjovanov avatar

Watchers

 avatar

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.