gjovanov / Roomler
Licence: agpl-3.0
Roomler - Multi-party Video Conferencing & Team Collaboration Tool using WebRTC (Janus Gateway)
Stars: ✭ 160
Programming Languages
javascript
184084 projects - #8 most used programming language
Projects that are alternatives of or similar to Roomler
Shell
Infrastructure Management Shell - Linux
Stars: ✭ 381 (+138.13%)
Mutual labels: redis, mongodb, nginx
Awesome Programming Books
📚 经典技术书籍推荐,持续更新...
Stars: ✭ 3,472 (+2070%)
Mutual labels: redis, mongodb, nginx
Springbootunity
rabbitmq、redis、scheduled、socket、mongodb、Swagger2、spring data jpa、Thymeleaf、freemarker etc. (muti module spring boot project) (with spring boot framework,different bussiness scence with different technology。)
Stars: ✭ 845 (+428.13%)
Mutual labels: redis, mongodb, nginx
Phalcon Vm
Vagrant configuration for PHP7, Phalcon 3.x and Zephir development.
Stars: ✭ 43 (-73.12%)
Mutual labels: redis, mongodb, nginx
Production Ready Expressjs Server
Express.js server that implements production-ready error handling and logging following latest best practices.
Stars: ✭ 101 (-36.87%)
Mutual labels: redis, mongodb, nginx
Netkiller.github.io
Netkiller Free ebook - 免费电子书
Stars: ✭ 861 (+438.13%)
Mutual labels: redis, mongodb, nginx
Docker Vue Node Nginx Mongodb Redis
🐉 An awesome boilerplate, Integrated Docker, Vue, Node, Nginx, Mongodb and Redis in one, Designed to develop & build your web applications more efficient and elegant.
Stars: ✭ 34 (-78.75%)
Mutual labels: redis, mongodb, nginx
Vue Family Bucket Ssr Koa2 Full Stack Development From Meituan
🚀🚀2020最新Vue全家桶+SSR+Koa2全栈开发☁
Stars: ✭ 100 (-37.5%)
Mutual labels: redis, mongodb, nuxtjs
Vagrant Elastic Stack
Giving the Elastic Stack a try in Vagrant
Stars: ✭ 131 (-18.12%)
Mutual labels: redis, mongodb, nginx
Sourcecodeofmongoredis
《左手MongoDB,右手Redis——从入门到商业实战》书籍配套源代码。
Stars: ✭ 135 (-15.62%)
Mutual labels: redis, mongodb
Monitaure
🔔 A server uptime monitoring progressive web application - NO LONGER MAINTAINED
Stars: ✭ 135 (-15.62%)
Mutual labels: mongodb, nginx
Nosqlmap
Automated NoSQL database enumeration and web application exploitation tool.
Stars: ✭ 1,928 (+1105%)
Mutual labels: redis, mongodb
Lovinghome Real Estate Platform
⚡️基于springboot+MyBatis+FreeMarker+redis+nginx+Echarts+druid等技术的JavaWeb项目------恋家房产平台(采用B/S架构,项目包含前后台,分为前台展示系统及后台管理系统。前台系统包含首页门户、登录注册、房产推荐、房产详情、热门房产、房产及小区搜索、经纪人列表及经纪机构创建、创建房产、房产百科、地图找房、用户个人中心、房产评论、房产打分等模块。 后台管理系统包含房产信息管理、用户管理、管理员管理、小区信息管理、博客管理、评论管理、经纪人管理、系统统计与多种图表展示、数据报表导入导出等模块。系统介绍及详细功能点、技术点见项目内文档描述)
Stars: ✭ 140 (-12.5%)
Mutual labels: redis, nginx
Express Mongodb Rest Api Boilerplate
A boilerplate for Node.js apps / Rest API / Authentication from scratch - express, mongodb (mongoose).
Stars: ✭ 153 (-4.37%)
Mutual labels: redis, mongodb
Pychat
webchat via WebSockets/WebRTC that allows messaging/video call/screen sharing
Stars: ✭ 152 (-5%)
Mutual labels: redis, webrtc
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.
Features
MULTI PARTY CALLS | POWERFUL CHAT | ORGANIZED ROOMS |
---|---|---|
|
|
|
Technology stack
- Janus Gateway
- Coturn
- Fastify
- PM2
- MongoDB
- Redis
- VueJS
- NuxtJS
- VuetifyJS
- Tiptap
- ProseMirror
- Nginx
- Docker
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:
-
docker network create frontend
(used by containersroomler
,nginx
) -
docker network create backend
(used by containersroomler
,mongo
,redis
) - on the existing
host
networkjanus
andcoturn
will be attached
Microservice dependencies
- Janus Gateway
- Coturn
- MongoDB
- Redis - optional in development, but recommended in production!
- Nginx - optional in development, but recommended in production!
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)
Note that the project description data, including the texts, logos, images, and/or trademarks,
for each open source project belongs to its rightful owner.
If you wish to add or remove any projects, please contact us at [email protected].