node-murmur
v0.1.3
Published
A Node.js implementation of a Mumble-compatible voice server
Maintainers
Readme
node-murmur
node-murmur is a Node.js implementation of a Mumble-compatible voice server.
Requirements
- Node.js 24 or newer
- npm
Installation & Quick Start
Run directly from npm:
npx node-murmurOr install it globally:
npm install -g node-murmur
node-murmurRun with Docker from GitHub Container Registry:
docker run --rm -it \
-p 64738:64738/tcp \
-p 64738:64738/udp \
-v node-murmur-data:/app/data \
ghcr.io/jstarstech/node-murmur:latestTo run from source:
git clone https://github.com/jstarstech/node-murmur.git
cd node-murmur
npm install
npm startUsage
Connecting to the Server
Once the server is running, you can connect using any Mumble-compatible client (like the official Mumble client).
- Address: Your server's IP or hostname
- Port:
64738(default) - Username: Any username you choose
Administrative Access (SuperUser)
On the first startup, node-murmur generates a unique password for the SuperUser account and logs it to the console. You can use this account to:
- Create and manage channels
- Manage ACLs and groups
- Kick or ban users
To log in as SuperUser, use the username SuperUser and the generated password when connecting.
Configuration
By default, the server keeps runtime state in the data/ directory:
data/mumble-server.ini: Optional server configurationdata/mumble-server.sqlite: SQLite database for persistent storagedata/mumble-server.log: Server log filedata/server.cert&data/server.key: Automatically generated TLS certificate and key
If data/mumble-server.ini is missing, the server starts with built-in defaults.
Common Settings
You can customize the server by adding these keys to your mumble-server.ini:
port: Port to listen on (default:64738)welcometext: Message displayed to users upon connectionusers: Maximum number of concurrent usersserverpassword: Password required to connect to the serverallowhtml: Whether to allow HTML in messages, comments, and descriptions (default:true)textmessagelength: Maximum length for text messages, comments, and descriptions (default:5000)
Example Configuration (mumble-server.ini)
# Port to listen on (default: 64738)
port=64738
# Message displayed to users upon connection
welcometext="Welcome to the server!"
# Maximum number of concurrent users
users=100
# Password required to connect to the server (uncomment to enable)
# serverpassword=mypassword
# Allow HTML in welcome text and channel descriptions (default: true)
# If disabled, the server strips HTML tags from messages, comments, and descriptions
allowhtml=true
# Maximum length for text messages, comments, and descriptions (default: 5000)
textmessagelength=5000
# Bandwidth limit in bits per second (default: 558000)
bandwidth=558000Rich HTML Example
You can use HTML and inline CSS to create a more styled welcome message. Here is an example:
welcometext="<br />Welcome!<p style=\"margin-bottom:12px; margin-top:12px\">Website: <a href=\"https://github.com/jstarstech/node-murmur\"><span style=\"color:#39a5dd\">node-murmur</span></a></p><p style=\"margin-bottom:12px; margin-top:12px\"><a href=\"https://github.com/jstarstech/node-murmur/issues\"><span style=\"color:#39a5dd\">Report Issues</span></a></p>"Note: When using quotes or complex HTML in the
.inifile, ensure you escape inner quotes or use the appropriate format for your environment.
Environment Variables
You can override default paths using environment variables:
CONFIG_FILE: Path to the.iniconfig fileDB_STORAGE: Path to the SQLite databaseLOG_FILE: Path to the log file
Development
The project uses:
- ESM modules
- SQLite for local storage
- ESLint for linting
- Node's built-in test runner for tests
For local development with automatic restarts:
npm run devUseful commands:
npm run lint
npm run lint:fix
npm testNotes
The project is still in an early stage and may contain bugs. It is expected to become more complete and ready for wider use closer to a 1.0 release.
Credit
This project uses some ideas and code inspired by the original Rantanen/node-mumble project.
