Guide

Héberge ton propre serveur Mumble

Mumcord n’a pas besoin d’un serveur spécial : un simple serveur Mumble suffit. Avec Docker, le tien tourne en 15 minutes environ, même si tu n’as jamais fait ça.

  • 64738 port, TCP et UDP
  • 1 cœur et 512 Mo de RAM suffisent pour des dizaines de personnes
  • 0 € open source ; tu ne paies que la machine

En huit étapes

  1. Choisis une machine

    Le plus simple, c’est un petit serveur Linux chez un hébergeur (un « VPS » pour quelques euros par mois). Il tourne jour et nuit et a une adresse fixe. Un ordinateur à la maison ou un Raspberry Pi fait aussi l’affaire ; il faut alors ouvrir un port sur ta box (étape 5).

    Mumble demande très peu de puissance. La connexion compte davantage : chaque personne qui parle utilise environ 40–100 kbit/s.

  2. Installe Docker

    Connecte-toi au serveur en SSH. Sous Linux, cette commande installe Docker avec Compose. Sous Windows et macOS, utilise plutôt Docker Desktop.

    Terminal
    curl -fsSL https://get.docker.com | sudo sh
    docker compose version

    Si tu vois un numéro de version, c’est bon.

  3. Crée un dossier et un mot de passe

    Crée un dossier et génère un mot de passe aléatoire pour le compte admin SuperUser :

    Terminal
    mkdir -p ~/mumble && cd ~/mumble
    openssl rand -base64 24
    .env
    # Stays on the server. Never share it in Git, chats or screenshots.
    SUPERUSER_PASSWORD=paste-the-random-password-here
    SERVER_PASSWORD=

    Enregistre le second fichier sous .env et colles-y le mot de passe généré (par exemple avec nano .env). Si tous ceux qui ont l’adresse ne doivent pas pouvoir entrer, définis un SERVER_PASSWORD que tu donnes à tes potes. Ensuite, chmod 600 .env empêche les autres utilisateurs de la machine d’accéder au fichier.

  4. Le docker-compose.yml

    Ce fichier va dans le même dossier, sous le nom docker-compose.yml. Change le nom du serveur et le texte de bienvenue comme tu veux ; le reste peut rester tel quel.

    docker-compose.yml
    # Mumble server for Mumcord and any other Mumble client
    name: mumble
    
    services:
      mumble-server:
        image: mumblevoip/mumble-server:v1.5.735   # pinned version; raise it here to update
        restart: unless-stopped
        ports:
          - "64738:64738/tcp"   # connection and chat
          - "64738:64738/udp"   # voice
        volumes:
          - data:/data          # channels, registrations and certificate
        environment:
          # Passwords come from the .env file next to this one, never straight in here.
          MUMBLE_SUPERUSER_PASSWORD: ${SUPERUSER_PASSWORD:?SUPERUSER_PASSWORD is missing in .env}
          MUMBLE_CONFIG_SERVER_PASSWORD: ${SERVER_PASSWORD:-}   # empty = anyone with the address can join
          MUMBLE_CONFIG_REGISTER_NAME: "Our Server"              # name of the top channel
          MUMBLE_CONFIG_WELCOME_TEXT: "Welcome! Say hi in the chat."   # pinned at the top of the chat in Mumcord
          MUMBLE_CONFIG_USERS: "50"                             # at most this many at once
          MUMBLE_CONFIG_IMAGE_MESSAGE_LENGTH: "1048576"         # images in chat up to 1 MB (default: 128 KB)
          MUMBLE_CONFIG_TEXT_MESSAGE_LENGTH: "10000"            # longer messages (default: 5000 characters)
    
    volumes:
      data:

    Les deux derniers réglages sont là pour Mumcord : les images collées peuvent être plus grandes, et les longs messages ne sont pas coupés. Tous les autres réglages suivent le même schéma MUMBLE_CONFIG_…, voir la documentation de l’image.

  5. Démarre-le et ouvre le port

    Démarre le serveur et jette un œil rapide au journal :

    Terminal
    docker compose up -d
    docker compose logs -f   # Ctrl+C only stops the output

    Dès qu’il affiche Server listening on 0.0.0.0:64738, il tourne. Le port 64738 en TCP et UDP doit maintenant être joignable depuis l’extérieur :

    Serveur avec pare-feu (par exemple ufw) : sudo ufw allow 64738/tcp et sudo ufw allow 64738/udp. Certains hébergeurs ont aussi un pare-feu dans leur espace client.

    Ordinateur à la maison : configure sur ta box une redirection de port 64738 TCP et UDP vers cet ordinateur.

  6. Connecte-toi avec Mumcord

    Dans Mumcord, clique sur + dans la barre des serveurs et saisis l’adresse IP ou le nom de ton serveur. Un nom, c’est plus sympa qu’une IP : crée chez ton fournisseur de domaine un enregistrement A, comme voice.example.org, qui pointe vers l’IP.

    À la première connexion, Mumcord affiche l’empreinte du certificat. C’est normal : le serveur a créé son propre certificat au premier démarrage. Confirme-la une fois ; si elle change de façon inattendue plus tard, Mumcord te prévient.

  7. Invite du monde

    Envoie un lien à tes potes. Un clic dessus ouvre Mumcord (ou n’importe quel autre client Mumble) et se connecte aussitôt ; ajoute un nom de salon à la fin pour atterrir dans le bon salon :

    Terminal
    mumble://voice.example.org
    mumble://voice.example.org/Gaming

    Ceux qui n’ont pas encore Mumcord le trouvent sur mumcord.app. Envoie le mot de passe du serveur séparément du lien.

  8. Configure les salons et les permissions

    Créer des salons et attribuer des permissions arrive dans Mumcord avec l’Epic 4. D’ici là, utilise une fois le client Mumble officiel :

    1. Connecte-toi avec le nom d’utilisateur SuperUser et le mot de passe de .env.

    2. Clic droit sur le salon tout en haut → Ajouter, pour chaque salon que tu veux.

    3. Pour ne pas avoir besoin de SuperUser à chaque fois : connecte-toi avec Mumcord sous ton propre nom et clique sur ton nom en bas à gauche → S’enregistrer sur ce serveur. Puis, en tant que SuperUser, salon tout en haut → Modifier → Groupes → ajoute ton nom au groupe admin.

Entretien et problèmes

Comment mettre à jour le serveur ?

Indique la nouvelle version après image: dans docker-compose.yml (voir la liste sur Docker Hub), puis lance docker compose pull et docker compose up -d. Les salons et les enregistrements sont conservés.

Comment faire une sauvegarde ?

Tout ce qui compte se trouve dans le volume mumble_data. Pause, archive, reprise : docker compose stop, puis docker run --rm -v mumble_data:/data -v "$PWD":/backup alpine tar czf /backup/mumble-backup.tar.gz -C /data . et enfin docker compose start.

Personne n’arrive à joindre le serveur.

Presque toujours, le port est fermé. Vérifie avec docker compose ps que le conteneur tourne, puis le pare-feu, celui de l’hébergeur et ta box (étape 5). Si le serveur est chez toi, il se peut que l’adresse publique soit injoignable depuis ton propre réseau ; teste alors avec l’IP locale.

La connexion marche, mais la voix est hachée.

En général, seul TCP est ouvert, pas UDP. Mumcord se replie alors tout seul sur TCP. Ça marche, mais c’est plus lent. Ouvre aussi UDP 64738.

J’ai oublié le mot de passe SuperUser.

Mets-en un nouveau dans .env et lance docker compose up -d. Le serveur l’applique à chaque démarrage.

Plus d’aide dans le wiki et les issues sur GitHub. Wiki → Issues →