Building your own Slack-like Video Conferencing & Team Collaboration tool, powered by Janus

589 views
Skip to first unread message

Goran Jovanov

unread,
May 25, 2020, 2:21:45 PM5/25/20
to meetecho-janus
Hi everyone,
for the last year I was on mission to build an Open Source Video Conferencing & Team Collaboration tool (similar to Slack and MS Teams) all that powered the the amazing Janus Gateway.

My goal was to implement an app that will support:
  1. Multi-party video conferences (audio, video & screen sharing)
  2. Rich-text chat with a support for emoji's & giphy's, reactions, mentions and file sharing
  3. Channeled conversation (private & public & nested rooms)

After one year of trials & errors in addition to doing a full-time day job, I have managed to build something that is tangible and that might actually useful.


All this is fully free & open source and available at:


Feel free to try it out.

I also blogged about here:



Keep in mind, it's still in its infancy and you might find some bugs along the way.


I'm still amazed that all tools are there and all open source.

Special thanks to Meetech's team for providing powerful & highly useful SFU (Janus).


I hope you find it useful.

/Goran

Mirko Brankovic

unread,
May 25, 2020, 2:43:10 PM5/25/20
to meetecho-janus
Nice work, YT demo looks nice, maybe you can compose it into some docker-compose file to start it all with one command ? 
Regards,
Mirko

--
You received this message because you are subscribed to the Google Groups "meetecho-janus" group.
To unsubscribe from this group and stop receiving emails from it, send an email to meetecho-janu...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/meetecho-janus/8ec3c121-f4e5-4544-ab1c-0282e36719db%40googlegroups.com.


--
Regards,
Mirko

Goran Jovanov

unread,
May 25, 2020, 3:57:36 PM5/25/20
to meetecho-janus
Good point Mirko.

The only reason I haven't exposed the docker-compose.yml is that in my case many other docker stack are running in parallel with some of the services are being reused by other apps in the environment where it's deploy.


However, it's much simpler to start it up via docker-compose. I will prepare one.

Tnx.


On Monday, May 25, 2020 at 9:43:10 PM UTC+3, Mirko Brankovic wrote:
Nice work, YT demo looks nice, maybe you can compose it into some docker-compose file to start it all with one command ? 
Regards,
Mirko

On Mon, May 25, 2020 at 8:21 PM Goran Jovanov <goran....@inovatika.net> wrote:
Hi everyone,
for the last year I was on mission to build an Open Source Video Conferencing & Team Collaboration tool (similar to Slack and MS Teams) all that powered the the amazing Janus Gateway.

My goal was to implement an app that will support:
  1. Multi-party video conferences (audio, video & screen sharing)
  2. Rich-text chat with a support for emoji's & giphy's, reactions, mentions and file sharing
  3. Channeled conversation (private & public & nested rooms)

After one year of trials & errors in addition to doing a full-time day job, I have managed to build something that is tangible and that might actually useful.


All this is fully free & open source and available at:


Feel free to try it out.

I also blogged about here:



Keep in mind, it's still in its infancy and you might find some bugs along the way.


I'm still amazed that all tools are there and all open source.

Special thanks to Meetech's team for providing powerful & highly useful SFU (Janus).


I hope you find it useful.

/Goran

--
You received this message because you are subscribed to the Google Groups "meetecho-janus" group.
To unsubscribe from this group and stop receiving emails from it, send an email to meetech...@googlegroups.com.


--
Regards,
Mirko

Mirko Brankovic

unread,
May 25, 2020, 4:30:36 PM5/25/20
to meetecho-janus
Perfect  thanks :)

To unsubscribe from this group and stop receiving emails from it, send an email to meetecho-janu...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/meetecho-janus/4e32be25-0039-4da3-8dd0-020e49e6ec42%40googlegroups.com.


--
Regards,
Mirko

Serhat Sakarya

unread,
May 25, 2020, 4:42:07 PM5/25/20
to Mirko Brankovic, meetecho-janus
Very nice work, Goran.

I think that this can be a good contribution in a ways beyond your initial goal: it provides an all-in-one package showing what kind of professional apps can be made using only open source components with details on how to do it exactly. That's quite educational to other developers. I hope this takes off.

Regards,

Serhat

Lorenzo Miniero

unread,
May 26, 2020, 4:18:58 AM5/26/20
to meetecho-janus
Hi Goran,

thanks for sharing, and nice work! Just out of curiosity, what do you use the Streaming plugin for? It's mentioned in one of the earlier diagrams, but the ones after that only focus on the VideoRoom.

Lorenzo

Goran Jovanov

unread,
May 26, 2020, 8:40:34 AM5/26/20
to meetecho-janus
Thanks Serhat.

Indeed because we are standing on the Shoulders of Giants, it's quite amazing what we can build out of what is available.

This version of Roomler was built based on my assumtions what would be useful to have in good team collaboration tool (like mentions, reactions, rich-text, file sharing etc), however in the future would love to rely more on actual user input.

One of ideas I was thinking of extending Roomler, for each room created, that you get a simple JS snippet that you can drop on your Website, which will render as simple chat plugin (like Live Chat & Zen Desk) with options for:
- Live Chat
- Audio/Video Calls
- Tickets/Channels (aka Rooms)
- Analytics
with your web site vistors.

This is something has been on my mind for a while now would also love to hear other potential directions to move Roomler forward.

Anyways, I'm still learning by doing, so way more to learn ahead.
Perfect  thanks :)



--
Regards,
Mirko

--
You received this message because you are subscribed to the Google Groups "meetecho-janus" group.
To unsubscribe from this group and stop receiving emails from it, send an email to meetech...@googlegroups.com.

Goran Jovanov

unread,
May 26, 2020, 8:47:55 AM5/26/20
to meetecho-janus
Thanks Lorezno, I really appreciate it. And special thanks to you and your team for making Janus available and open source.

Streaming plugin is currently not used in Roomler. The diagram is only meant to show the options of Janus and multiple plugins we can talk to. 

However, I do plan to use Streaming for two scenarios:

1. Playback of recorded conference videos (post-processed - mixed in one via ffmpeg)
2. Janus scaleout via rtp forwarding

However, none of that is yet implemented and in many regards I'm still a noob and still learning (mostly by doing). 

Serhat Sakarya

unread,
May 26, 2020, 9:45:01 AM5/26/20
to Goran Jovanov, meetecho-janus
Well, I find a very effective way of learning is to make something yourself. Only then do you get to know all the little practical issues you need to solve. I still remember the 'olden days' of having to take into account IE6 with barely any proper standards. Now we can even make video conferencing apps as single developers! It's a very exciting time.

From a marketing perspective, it would seem your challenge now is to get people to start using your product. Right now, there are lots of polished solutions out there. I agree with your idea to make it super easy to start using it with copying a bit of code to one's website. The issue would be: who would do the hosting then? Bandwidth can easily add up if you have 100 sites using this code. Or maybe you have a demo room that people can use for free with bandwidth caps and then if they want more, they have to host it themselves.

I don't know if you thought about a business model or something, but with open source projects, usually you see some extra services (customization, setting things up, etc) as something you might earn money from. It might not be your intention now, but it can be a request that you may get.

I would also suggest that while you are very excited about offering a broad range of options, for many it might be sufficient to just have something simple they have on their website or maybe even a webcam live feed or something. Keeping things simple is sometimes a bit difficult. This is my opinion... I think you have a pretty good idea of what to do.

Regards,

Serhat

To unsubscribe from this group and stop receiving emails from it, send an email to meetecho-janu...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/meetecho-janus/a6da3dbe-cc85-4b27-9bdc-655daca4176a%40googlegroups.com.

Goran Jovanov

unread,
May 26, 2020, 1:37:25 PM5/26/20
to meetecho-janus
Indeed one of the challenges for bringing Live Support & Video Conferencing via such plugin is the bandwidth hit, especially for high traffic web sites, but it can be put a certain cap per day. Also for some browsers that don't suport WebRTC, only chat options would be available. I would need to research what is out there and if this all makes sense....

And fully agree that by trying to be too many things at once, would end up becoming nothing.

It might be better to separate them out as two separate services (conference vs live support), even though they would reuse some of the backend and frontend logic. 

Regarding roomler users, while working on it, I did several focus groups with tutors and teachers that were interested in alternatives to Zoom and they are still using it on a day to day basis (for free). Roomler app is scalable (the chat part at least, is running as a multi-container service), but I still have only one instance of Janus & Coturn running, even though on a good hardware, but this part is currently not scalable. Before making anything serious, I will need to have at least that scaling mechanisam in place.... Probably first option I'll do is via routing cookie and nginx load balancing. Then I would go for trying to implement the scaling via RTP forwarding (replaying)... So there are still some things in front to play with :)

Hemrajsinh Gharia

unread,
Jun 4, 2020, 8:11:56 AM6/4/20
to meetecho-janus
Amazing!!

home...@gmail.com

unread,
Aug 2, 2020, 1:50:56 PM8/2/20
to meetecho-janus
Have a good day!
I have installed MongoDB in ubuntu 18.04 (32 bit) according to the next instruction
https://dzone.com/articles/installing-mongodb-on-32-bit-ubuntu-1510
Please, help me, how I should change "docker" to get Roomler worked
docker run -d --name mongo \ --restart=always \ -p 27017:27017 \ -v mongo_data:/data/db \ mongo # attach mongo container to backend network docker network connect backend mongo
because this works only for 64 bit
Thank you in advance!

Goran Jovanov

unread,
Aug 3, 2020, 3:39:19 AM8/3/20
to meetecho-janus
Pls find the answer in the git issues, you've opened:


Also pls note that a basic docker knowledge is a prerequisite for running roomler app.

home...@gmail.com

unread,
Aug 17, 2020, 6:10:40 AM8/17/20
to meetecho-janus
is it possible to install and run roomler directly (using script) without  docker containers?

Goran Jovanov

unread,
Aug 17, 2020, 6:47:09 AM8/17/20
to home...@gmail.com, meetecho-janus
Yes in the "Start in production mode" section of README.md is explained:



Pls note this assumes that other services are already up and running (mongo, redis, coturn, janus) and that all are properly configured in ur '.env' file.


--
You received this message because you are subscribed to the Google Groups "meetecho-janus" group.
To unsubscribe from this group and stop receiving emails from it, send an email to meetecho-janu...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/meetecho-janus/8c703f2f-2996-4c62-a8e1-5fde68587c35n%40googlegroups.com.
Reply all
Reply to author
Forward
0 new messages