Nextcloud Talk high-performance back-end
-
This has just been open sourced
See
https://nextcloud.com/blog/open-sourcing-talk-back-end-rc-of-talk-9-brings-lots-of-improvements/https://github.com/strukturag/nextcloud-spreed-signaling
Would love to be able to use this with my Cloudron Nextcloud!
-
Wow, what a big step to release this as open source. Especially with Jisti being hard to be packaged, this would be awesome to get running on cloudron. I am not aware of any solution offering a videobridge/MCU/etc. so far that is available on cloudron, so this would be a great addition.
-
@NCKNE said in Nextcloud Talk high-performance back-end:
I am not aware of any solution offering a videobridge/MCU/etc.
But neither is Nextcloud. What they have now released is a signalling server, this is just meant to better cope with a lot of users (otherwise the signalling functionality is done in php, which does not scale as well).
-
@fbartels said in Nextcloud Talk high-performance back-end:
But neither is Nextcloud. What they have now released is a signalling server, this is just meant to better cope with a lot of users (otherwise the signalling functionality is done in php, which does not scale as well).
But it looks like it's designed to work Janus General Purpose WebRTC Server which from what I can tell is a gateway that does do this stuff, no?
-
Yes, Janus indeed has a plug-in to do video through an sfu.
-
From skipping though the documentation it looks to me as if the backend including the SFU would be addressed by a NATS server and could be proxied by nginx. While I havenβt (yet) looked deeper into packaging apps for cloudron and donβt know if Go would be supported by the base image, I would assume/hope this could be packaged (at least theoretically) for cloudron?
-
Question - what's the difference between https://github.com/strukturag/nextcloud-spreed-signaling and the Turn server that is now available in CR natively?
-
@doodlemania2 I'm not really sure, but reading the readme it sounds like perhaps it's the NATS server and the Janus server that are doing the heavy lifting of this high-performance back-end.
-
@doodlemania2 a sfu/mcu (this is what Janus is doing with this "high performance backend) is only complimentary to a TURN. So you still need Turn and Turn will connected by Janus as well.
-
Nextcloud Enterprise estimates that a 4-core/ 8GB RAM High-Performance Backend server (i.e. Janus SFU (open source) + Signalling Server (now, open source) + NATS messaging server (open source) + CoTURN server + Nginx + Apache) will work with "at least 150 concurrent users"!
Wow!!! Really worth packaging this as a separate app for Cloudron!
Shouldn't packaging this get precedence over packaging Jitsi... given that almost every Cloudron subscriber would be using Nextcloud?
-
That's a lot of pieces! I'd be happy to look at packaging it @oj but will have to do quite a bit of research to see what all is involved. I was thinking it was just that one needed the spreed signaling. Will give it a go!
-
Having this available in the cloudron universe would be simply awesome and a big selling point. I have so far not seen any providers offering a hosted solution with the Talk High Performance Backend. @doodlemania2: please keep us updated on the packaging. If you need help with tests, etc. let us know. I really appreciate that you are willing to give it a try!
Together with a future elasticsearch service (hopefully) for full text search, cloudron will become a great nextlcoud hosting platform. -
I've been playing with this. Most of it is pretty straight forward, but Janus is kicking my butt. I can't get it to install due to wild wacky dependencies flying every which way. Continuing to work on it, but if you have an easy Janus setup script, let me know
-
Many thanks for your efforts @doodlemania2!
@doodlemania2 said in Nextcloud Talk high-performance back-end:
if you have an easy Janus setup script, let me know
I've no idea, but I've asked on the CoTech and Meet.coop forums:
https://community.coops.tech/t/anyone-got-an-ansible-scripts-for-janus-webrtc-server/2150
https://forum.meet.coop/t/anyone-got-an-ansible-scripts-for-janus-webrtc-server/131
Guess you'll have also seen e.g. https://github.com/andycoates/janus-cluster - anything in there that could be reused?
Will be so awesome once this available on Cloudron!
-
Was pointed to this backport: https://gitlab.com/packaging/janus/ going to try it this evening to see if that helps speed things along!
-
So, good news, I've got this working in the Cloudron Base image (I think?) using the signaling test client. My next step will be to wrap things up and start testing against live NextClouds. Currently, I'm thinking I'll disable ALL security since it will only be reachable by a local, on box Nextcloud. Open to suggestions on that.
-
@doodlemania2 hm what do you mean by that? High performance backend needs to be accessible externally as the clients communicate with it via websocket.
-
Yeah, sorry, I meant that signaling would be externally accessible, but it appears nats and janus do not as signaling just calls them. Does that sound about right or am I WAY off?
-
Continuing to play with this. I think it's working, but I think more than just the signaling app needs access to the internet. I think the Janus bits need to be accessible as well. Currently, it's behind the docker net.
-
Going to build Janus and dependencies from source (which will take some time) as the backports are old. While doing this, @nebulon is working on an update to TURN/STUN to enable API access in CR itself! See: https://git.cloudron.io/cloudron/box/-/issues/710
-
@doodlemania2 have you managed to make any further progress with getting this packaged? Thanks!
-
Hi @jdaviescoates - yep - we need to wait for an update to Box to support Auth API things on the Turn server. cc: @girish
-
Yup, we will add it in Cloudron 6
-
Sounds tantalisingly close, thanks @doodlemania2 @girish !
-
@jdaviescoates said in Nextcloud Talk high-performance back-end:
Sounds tantalisingly close, thanks @doodlemania2 @girish !
In the meantime, Nextcloud 20 is going to make it easy to sign-up to a hosted Nextcloud High Performance Backend
See:
https://nextcloud.com/press/pr20201003-6/
https://help.nextcloud.com/t/nextcloud-hub-20-debuts-dashboard-unifies-search-and-notifications-integrates-with-other-technologies/93838
https://www.spreed.eu/contact-nextcloud-talk-high-performance-backend/ -
I've got a very early prototype of this working - it just needs some API fun from the Cloudron TURN feature sets. https://git.cloudron.io/doodlemania2/nthpbe
-
Exciting, thanks @doodlemania2!
-
@doodlemania2 You might be interested in this: Nextcloud Talk High Performance Backend with Stun/Turnserver on Ubuntu with docker-compose
-
@doodlemania2 To continue the discussion from the other thread about the TURN server requirements.
Per https://markus-blog.de/index.php/2020/07/30/how-to-install-nextcloud-talk-high-performance-backend-with-stun-turnserver-on-ubuntu/, the turnserver only requires a static-auth-secret and that is already set in existing turn server. I guess you are referring to the
turn_rest_api_key
in the janus configs? That secret is generated and shared between janus and nextcloud-spreed-signaling server from what I can understand. I think the existing turn service should work as-is. -
-
@doodlemania2 said in Nextcloud Talk high-performance back-end:
okay - let me re-start my efforts and will study it more closely in addition to @oj 's and others suggestions to look at a prebuilt docker for inspiration.
Did you manage to have another look? Would be so great to have this!
-
@jdaviescoates
I haven't yet and I feel really bad about it - work has been all consuming of late. It's literally at the top of my list, just haven't had a chance! I promise more soon fast as I can!
-
@doodlemania2 don't feel bad about it!
But also, great, thanks!
-
@jdaviescoates I've been trying to get this to work but it just doesn't (based on the docker-compose example). I've reached out to the author of the blog to see if he can assist!
-
this is ready for testing - please send me a DM if you'd like to try it out!
-
@doodlemania2 great news! Is https://git.cloudron.io/doodlemania2/nthpbe still the latest repo because it says the commits are from 9 months ago.
-
@girish we can delete that repo actually - instead of creating a fully packaged cloudron custom app, I decided to offer this to the cloudron community for free* from my VPSs.
*standard "be nice folks" or I turn it off
-
@girish - i'm really embarassed it took that long (9 months!!!)
-
@doodlemania2 that's very kind of you!
But it'd still be great to have an app too. Was it just too difficult to package or something?
Thanks for all your efforts!
-
@jdaviescoates like comical... way too many moving parts
-
@doodlemania2 Are you still sharing access to the Nextcloud Talk high-performance back-end that you have created? If so, how may I contact you to test it?
-
@coniunctio Pinged you on DM!
-
I would realy love to see this happening as HPB is a gamechanger for bigger nextclouds. @doodlemania2 do you think that looking into https://github.com/deeztek/deeztek-docker/tree/master/Linux/nextcloud-spreed-signaling might help you with your packageing?
-
@m-si someone may find a way to package it, however, I've found it to be much easier to run a dedicated set of servers for NTHPBE. I offer it to clients for a pretty low fee in either US or DE if you are at all interested.
-
hi all, to bring up something from long ago, is there any chance this may pop up?
-
@mudassar still offering the service for users - ping me on DM if interested.