Jangouts: How We Open Sourced Our Meetings
The following article has been contributed by Ancor González Sosa, Software Engineer at the YaST team, SUSE.
Free software has always been a central piece of both my professional career and my personal life. In 2013, when I joined a company that claimed proudly “open source is in our genes” and that produced one of the first boxed Linux that I bought together with my brother Imobach back in the year 2000 (SuSE Linux 7.0), the future looked bright… but the reality was better than my best expectations.
Just a couple of weeks after joining SUSE, I discovered one of the many things that make this company awesome – Hack Week. Twice a year, all the SUSE engineers are granted a whole week to create, to develop themselves and to collaborate. Very often the result is a cool prototype software that, after some extra care and love (the company supports the development of such promising ideas beyond Hack Week itself), ends up being
relevant for SUSE or for the free software community in general, like the port of SUSE Linux Enterprise to the ARM architecture, the integration with Ceph, the translation of YaST to Ruby… and Jangouts.
Around the time of Hack Week 12, back in 2015, the YaST team was facing several challenges. It was adapting Scrum, and it was growing and becoming more distributed with the addition of new members like my brother Imo and myself. We needed a videoconferencing solution for our meetings and we found out that Google Hangouts was pretty well suited for our needs. But it forced us to install a proprietary browser plugin, it was hosted on servers of an external company and it was limited to 10 participants. Fortunately, it was Hack Week time!
Imo and I evaluated several free and/or open source alternatives for browser-based videoconferencing tools and found that all of them had serious drawbacks, specially stability and scalability problems. We wanted something very light on the server side and plugin-free on the client side. After one day of testing alternatives we still had three working days ahead of us before the round of presentations usually done on Hack Weeks’ Friday morning would happen. It doesn’t sound like too much time, but we also had a couple of aces up our sleeve – free software and open standards.
In 2015, WebRTC was finally being adopted by all standard-compliant browsers and I knew, from a previous Hack Week experiment, about an absolutely awesome free software project called Janus Gateway that made it possible to route WebRTC traffic in all kind of flexible and powerfull ways. On the other hand, Imo was relatively experienced with AngularJS, an open source development framework for writing browser applications. We mixed all those ingredients, and after three days in the oven we had a rather ugly free and self-hosted replacement for Google Hangouts which we called “Janus Hangouts”.
Thanks to the power of WebRTC and Janus, that prototype already included support for videoconferencing with many participants, screen-sharing and a text chat. Moreover, the chat was based on a patch I contributed to Janus during a previous Hack Week and that was kindly integrated by the upstream developers, proving once more the growth potential of projects with a sincere free software philosophy.
Despite the initial appearance, SUSE saw the inner beauty of that prototype and Ralf Flaxa, our President of Engineering, immediately granted us an extra week of our working time to polish it. In May 2015, the YaST team was already using the new tool “Jangouts” (somebody shortened the name of the prototype and we liked the result) for the daily meetings. Finally free, self-hosted and plugin-free meetings!
Since then, Jangouts has been adopted by several teams within and outside SUSE and has been enriched by contributions and fixes coming from quite some people. Jangouts is even taking part in Google Summer of Code for the second year in a row, under the openSUSE project’s umbrella.
Thanks to the power of the Open Build Service, installing Jangouts in any flavor of SUSE or openSUSE on top of almost any platform is rather easy. A recent article, authored by Sven Seeberg and published in Raspberry Pi Geek Magazine, details how Jangouts can be installed in a Raspberry Pi3 and used to host meetings with up to 40 participants on top of this very affordable ARM device.
If you want to check Jangouts yourself, just have a look at the repository on GitHub, which includes installation instructions and much more information. You can also search in GitHub for one of the several Docker containers created by the community.
Enjoy your lightweight, completely free (as in freedom) and self-hosted solution for videoconferencing… powered by SUSE Hack Week!