Skip to content

jstarstech/node-murmur

Repository files navigation

node-murmur

node-murmur is a Node.js implementation of a Mumble-compatible voice server.

NPM Version MIT License Build status

Requirements

  • Node.js 24 or newer
  • npm

Installation & Quick Start

Run directly from npm:

npx node-murmur

Or install it globally:

npm install -g node-murmur
node-murmur

Run 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:latest

To run from source:

git clone https://github.com/jstarstech/node-murmur.git
cd node-murmur
npm install
npm start

Usage

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 configuration
  • data/mumble-server.sqlite: SQLite database for persistent storage
  • data/mumble-server.log: Server log file
  • data/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 connection
  • users: Maximum number of concurrent users
  • serverpassword: Password required to connect to the server
  • allowhtml: 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=558000

Rich 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 .ini file, 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 .ini config file
  • DB_STORAGE: Path to the SQLite database
  • LOG_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 dev

Useful commands:

npm run lint
npm run lint:fix
npm test

Notes

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.

About

A Node.js implementation of a Mumble-compatible voice server

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors