Johni0702 / mumble-web

An HTML5 Mumble client
671 stars 152 forks source link

How I got the build working #204

Open termermc opened 1 year ago

termermc commented 1 year ago

Since many people are having trouble getting it to build, here's the environment that I finally got it to build in:

OS: Debian 11 64bit (virtual machine) Dependencies: make, g++, gcc, clang, python2

I installed Node v14.21.3 with NVM and did npm install normally. It took a very long time but eventually it built.

The build failed with Node 16 and versions earlier than 14.21.3, so use that version.

Perhaps these requirements can be put in the README.

termermc commented 1 year ago

Prebuilt binaries for linux x86_64 and install instructions: https://git.termer.net/termer/mumble-web-prebuilt

poVoq commented 1 year ago

Do you have an idea how to get ICE working with your setup?

I am facing the same issue as described here: https://github.com/Johni0702/mumble-web/issues/112

This is what my mumble-web-proxy.toml looks like:

listen-ws = 64737
server = 'localhost:64738'
accept-invalid-certificate = true
ice-port-min = 49152
ice-port-max = 65535
ice-ipv4 = 'mypublicIPv4'

I am forwarding a UDP port range from 49152 to 65535 from the firewall router to the server that mumble-web-proxy runs on.

But both in the Firefox browser console and about:webrtc it tells me that ICE failed.

Thanks for the help!

Edit: hmm is it possible that this fails because the internal server mumble-web-proxy runs on is ipv6 capable, but the firewall is currently ipv4 only?

termermc commented 1 year ago

@poVoq I would make sure that the ports are unblocked on both IPv4 and IPv6. I had loads of issues connecting over WebRTC. It wouldn't work on Chrome but it would work on Firefox for me, but some friends were unable to get it working on any browser on their computers. I tried using the fallback websocket transport, but it's nearly unusable.

In short, I don't have a satisfactory answer and I think the software isn't ready to be used widely.

poVoq commented 1 year ago

Not exactly the answer I was hoping for, but still thanks! I guess I need to get IPv6 working on my firewall...

termermc commented 1 year ago

If you find more useful information, let me know

Jackabomb commented 1 month ago

Thanks for this helpful info, and for the prebuilt binaries. These instructions worked for me on Debian 12 x64, with a couple tweaks.

Debian dropped support for Python 2 with Debian 12 (which is the current "stable" release) onward so new Debian installs either don't have a python binary at all, or it's a symlink to python3, both of which cause the build to fail. For the first case, I got errors about "python executable not found" or "which python failed". If symlinked to python3, I got errors about all the print statements missing their parentheses...

There are several workarounds:

I tried both the apt sources.list way, and the local Python build way. Both worked. Obviously, if you upgraded from Debian 11 and haven't removed "obsolete or locally installed packages", it's possible you still have python2 installed, in which case you should be fine.