Nextcloud Talk Signaling Server - now automated installation

@enoch85 what are the ā€œspecialā€ settings needed to run the signaling server. maybe itā€™s enough to add this to the nginx config.

that is to say: what is the difference in the apache conf between nextcloud with or without signaling server. what did you add to make the signaling server work?

Awesome work, is it possible to run this on a standalone system/virtual machine that should only run the signalling server?

Thanks, for quick reply. I never heard about that, and the installation scripts that I know use Nginx. Generally Nginx is praised for being less resource intenstive. So if there could be added something to the script to make it work with Nginx would be perfect. I run NC on a VPS, so I never considered your VM. I see you have an option for a VPS as well, maybe I will try that for my next install

Thereā€™s a lot, we basically threw the old Talk script away and made a new one. There are multiple Nginx configs online if you promtly want to run Nginx. Just use your favorite search engine. :wink:

You can read the script, but basically:

  • Apache Proxy
  • TLS to that proxy
  • All the packages needed for it to run
  • CLI commands to prep everything
  • And moreā€¦

Thanks! :smiley:

I never tried it Standalone, but it will check if Nextcloud is installed and all that. Though itā€™s pretty generic code Iā€™d say, so give it a try and report back, Would be interesting to know! Remember to keep backups!

Yup, and thatā€™s true as well. Nginx is very good at serving static files, like webpages and so on. Nextcloud isnā€™t a webpage. :slight_smile: Sure, your GUI will fly, but what about file syncingā€¦?

Iā€™ve seen many bugs regarding Nginx in use with Nextcloud over the years. I spent some time today trying to find a good explanation I stumbled across a few years ago regarding why Nginx is a bad idea for Nextcloud, but my search engine skills failed me this time. :confused:

Anyway, I run Ngix as well, but as a Reverse Proxy for all my servers. Itā€™s really nice!. All and all, I know Nginx, I know Apache. They are good at different things, and I wouldnā€™t suggest running Nginx for Nextcloud.

Youā€™re very welcome to try out the official VM scripts whenever you want. :+1:

Which are the limitations with a regular Nextcloud + Talk + Coturn setup? Or is this relevant for the official VM only?

Iā€™d like to test and probably implement but first want to understand what it is for :wink:.

Maybe this one? https://ownyourbits.com/2017/06/12/why-nextcloudpi-uses-apache-and-not-nginx/ It was posted in this thread, where people were divided between both web servers Why Nginx instead of Apache? but it seems to be easy to switch between the webservers, so that I donā€™t need to re-install everything. My current Nextcloud instance that Iā€™d like to retire has been using Apache without issues, I installed everything manually, so only the new install was a lazy one by using c-riegers script with Nginx Nextcloud 23 (Nextcloud Hub II) Installationsskript - Carsten Rieger IT-Services

1 Like

My understanding is, it revolves around the fact that traffic increases as a square of the number of participants: for N users the number of streams to handle is N*(N-1) - every user (N) sends its audio/video to everyone else (N-1)ā€¦

By introducing a signaling server, every user sends out only one audio/video stream and this server takes care of distributing it to others. It also performs some other duties: codec selection (if available), synchronization, optimization, downconvertion if needed, etc.

STUN and TURN servers solve the issue of users behind routers/firewalls.
To optimize the two-way audio/video traffic for 10+ participants it is not enoughā€¦

3 Likes

Many thanks for this great explanation. Yes that totally makes sense. It basically includes the TURN functionality then, right?

Not necessarily. Different technologies.
But just like TURN servers often do STUN (e.g. coTURN), so signaling might do everythingā€¦

Yeah I mean since it replaces P2P with a server-client model, it works around issues with firewalls and symmetric NAT as well, so no TURN/STUN required anymore. Although in case if two peers only, a direct P2P connection, in case with help of STUN, would be great to avoid unnecessary traffic through the signaling server.

Nope, but close :wink: It was a user on Github, but thereā€™s so many issues to search in. :smiley:

Anyway, Iā€™m also lazy, hence I made the scripts. If you feel like it, try the out like you did with Riegers stuff. Would be great with some feeback!

Spot on! Thanks! :+1:

The difference is what @anon71540698 already pointed out. You can handle more users with a seperate STUN server. But with this fix, you run STUN and TURN on the same server but on different domains. The STUN server is proxied.

But, it still allows for better quality and more users, and youā€™re not limited to the previous TURN limitations by just installing the default TURN server.

I tried Documize on a cheap VPS (LXC, Ubuntu 20) with 1GB RAM and it worked! A highly complex script that does a lot more than any of the others. Letsencrypt did not work, though, it said snap was not fully supported. Right now, record low 200 MB are used! I am impressed. Will explore more, thanks a lot for the scripts!

1 Like

Just spread the word about the VM and Iā€™m happy :smiley:

3 Likes

I will!

Just installed the Signaling Server as well, worked without any issues. Still only 300 MB RAM in use! Maybe you can lower the minimum requirements to 1GB in the install script?

Wow! :heart_eyes:

Problem is that people will complain when itā€™s slow, and there might be complications in a production environment as PHP-FPM is optimized for minimum use with 2 GB RAM.

I run the mirror (https://mirror.hanssonit.se) on 1 GB, and it works, but itā€™s sloooooow. :slight_smile:

@all

Even if Iā€™m not sure whether it really fits into the post.

I am looking for a working Docker version Nextcloud HPB (Talk Signaling Server).

I would not really like to install a VM because it represents another system and I already have more to do with my containers than I wanted.

Maybe someone from you can tell me if necessary. give a reference to a Docker compilation.

Many thanks

Django43

I understand. My installation is very fast, actually, but only a few apps are installed.

Anyway, I was not so lucky with my second try on a more powerful VPS. Maybe it has something to do with the hostname not been changed before running the script, I donā€™t know. Or that only Ubuntu 18.04 minimal was available and I had to make a manual update?

The problem is with Talk. It works without the signaling server, but after installing it, I cannot start a call, I just get a spinning wheel. I always get 403 forbidden error:

GuzzleHttp\Exception\ClientException: Client error: POST https://talk.SIGNALING.DOMAIN.COM/api/v1/room/fj2yqbejresulted in a403 Forbidden response: <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html><head> <title>403 Forbidden</title> </head><body> <h1>Forbidden (truncated...)

When I visit https://talk.SIGNALING.DOMAIN.COM/api/v1/room/fj2yqbej I get the friendly response

Hi there! :) If you see this page, the Apache2 proxy for Talk Signaling Server is up and running.

@Reiner_Nippes

Thank you for your tip. I have already tried to install the Talk Signaling Server several times in the past and unfortunately failed.

If I read the package correctly, only the Talk Signaling Server is included. Unfortunately there is no description of the additional required packages and the installation. My hope was an ā€œall-inā€ Docker image to make installation easier.

I think a step by step description would be a real help for many. Given the restrictions that still exist, a working video conferencing system - which could have at least 10-15 people participating - would be great.

Maybe there will still be someone who provides a tutorial and a corresponding Docker image.

Best wishes

Django43

Maybe you have to add the domain to /etc/hosts like in previous errors in this thread?

I actually have no idea right now, all the tests we did was working well. We tested on an UpCloud VPS with Ubuntu 20.04. I think it was 4 GB RAM and 4 CPU.

1 Like