Nextcloud Talk high-performance back-end
-
@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?
-
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?
-
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