-
Notifications
You must be signed in to change notification settings - Fork 154
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit 7bad9ba
Showing
63 changed files
with
2,135 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
dist | ||
|
||
# Created by https://www.gitignore.io/api/node | ||
|
||
### Node ### | ||
# Logs | ||
logs | ||
*.log | ||
npm-debug.log* | ||
|
||
# Runtime data | ||
pids | ||
*.pid | ||
*.seed | ||
*.pid.lock | ||
|
||
# Directory for instrumented libs generated by jscoverage/JSCover | ||
lib-cov | ||
|
||
# Coverage directory used by tools like istanbul | ||
coverage | ||
|
||
# nyc test coverage | ||
.nyc_output | ||
|
||
# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) | ||
.grunt | ||
|
||
# node-waf configuration | ||
.lock-wscript | ||
|
||
# Compiled binary addons (http://nodejs.org/api/addons.html) | ||
build/Release | ||
|
||
# Dependency directories | ||
node_modules | ||
jspm_packages | ||
|
||
# Optional npm cache directory | ||
.npm | ||
|
||
# Optional eslint cache | ||
.eslintcache | ||
|
||
# Optional REPL history | ||
.node_repl_history | ||
|
||
# Output of 'npm pack' | ||
*.tgz | ||
|
||
# Yarn Integrity file | ||
.yarn-integrity | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,91 @@ | ||
# mumble-web | ||
|
||
mumble-web is an HTML5 [Mumble] client for use in modern browsers. | ||
|
||
A live demo is running [here](https://voice.johni0702.de/?address=voice.johni0702.de&port=443/demo). | ||
|
||
The Mumble protocol uses TCP for control and UDP for voice. | ||
Running in a browser, both are unavailable to this client. | ||
Instead Websockets are used for all communications. | ||
|
||
libopus and libsamplerate, compiled to JS via emscripten, are used for audio decoding. | ||
Therefore, at the moment only the Opus codec is supported. | ||
|
||
Quite a few features, most noticeably voice activity detection and all | ||
administrative functionallity, are still missing. | ||
|
||
### Installing | ||
|
||
#### Download | ||
mumble-web can either be installed directly from npm with `npm install -g mumble-web` | ||
or from git: | ||
|
||
``` | ||
git clone https://github.com/johni0702/mumble-web | ||
cd mumble-web | ||
npm install | ||
npm run build | ||
``` | ||
|
||
The npm version is prebuilt and ready to use whereas the git version allows you | ||
to e.g. customize the theme before building it. | ||
|
||
Either way you will end up with a `dist` folder that contains the static page. | ||
|
||
#### Setup | ||
At the time of writing this there do not seem to be any Mumble servers | ||
which natively support Websockets. To use this client with any standard mumble | ||
server, websockify must be set up (preferably on the same machine that the | ||
Mumble server is running on). | ||
|
||
You can install websockify via `npm install -g websockify` or via your package | ||
manager `apt install websockify`. | ||
|
||
There are two basic ways you can use websockify with mumble-web: | ||
- Standalone, use websockify for both, websockets and serving static files | ||
- Proxied, let your favorite web server serve static files and proxy websocket connections to websockify | ||
|
||
##### Standalone | ||
This is the simplest but at the same time least flexible configuration. | ||
``` | ||
websockify --cert=mycert.crt --key=mykey.key --ssl-only --ssl-target --web=path/to/dist 443 mumbleserver:64738 | ||
``` | ||
|
||
##### Proxied | ||
This configuration allows you to run websockify on a machine that already has | ||
another webserver running. | ||
``` | ||
websockify --ssl-target 64737 mumbleserver:64738 | ||
``` | ||
|
||
A sample configuration for nginx that allows access to mumble-web at | ||
`https://voice.example.com/` and connecting at `wss://voice.example.com/demo` | ||
(similar to the demo server) looks like this: | ||
``` | ||
server { | ||
listen 443 ssl; | ||
server_name voice.example.com; | ||
ssl_certificate /etc/letsencrypt/live/voice.example.com/fullchain.pem; | ||
ssl_certificate_key /etc/letsencrypt/live/voice.example.com/privkey.pem; | ||
location / { | ||
root /path/to/dist; | ||
} | ||
location /mumble { | ||
proxy_pass http://websockify:64737; | ||
proxy_http_version 1.1; | ||
proxy_set_header Upgrade $http_upgrade; | ||
proxy_set_header Connection $connection_upgrade; | ||
} | ||
} | ||
map $http_upgrade $connection_upgrade { | ||
default upgrade; | ||
'' close; | ||
} | ||
``` | ||
|
||
### License | ||
ISC | ||
|
||
[Mumble]: https://wiki.mumble.info/wiki/Main_Page |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
<?xml version="1.0" encoding="utf-8"?> | ||
<browserconfig> | ||
<msapplication> | ||
<tile> | ||
<square150x150logo src="#require('./mstile-150x150.png')"/> | ||
<TileColor>#da532c</TileColor> | ||
</tile> | ||
</msapplication> | ||
</browserconfig> |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
{ | ||
"name": "Mumble", | ||
"icons": [ | ||
{ | ||
"src": "#require('./android-chrome-192x192.png')", | ||
"sizes": "192x192", | ||
"type": "image\/png" | ||
}, | ||
{ | ||
"src": "#require('./android-chrome-512x512.png')", | ||
"sizes": "512x512", | ||
"type": "image\/png" | ||
} | ||
], | ||
"theme_color": "#ffffff", | ||
"display": "standalone" | ||
} |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Oops, something went wrong.