node-murmur is a Node.js implementation of a Mumble-compatible voice server.
- Node.js 24 or newer
- npm
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 startOnce 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
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.
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.
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)
# 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=558000You 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.
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
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 testThe 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.
This project uses some ideas and code inspired by the original Rantanen/node-mumble project.