Handleiding

Host je eigen Mumble-server

Mumcord heeft geen speciale server nodig: een gewone Mumble-server is genoeg. Met Docker draait die van jou in ongeveer 15 minuten, ook als je dit nog nooit hebt gedaan.

  • 64738 poort, TCP en UDP
  • 1 core en 512 MB RAM zijn genoeg voor tientallen mensen
  • €0 open source; je betaalt alleen voor de machine

In acht stappen

  1. Kies een machine

    Het makkelijkst is een kleine Linux-server bij een hostingprovider (een „VPS” voor een paar euro per maand). Die draait dag en nacht en heeft een vast adres. Een computer thuis of een Raspberry Pi kan ook; dan moet je een poort openzetten op je router (stap 5).

    Mumble heeft heel weinig rekenkracht nodig. De verbinding is belangrijker: elke persoon die praat, gebruikt ongeveer 40–100 kbit/s.

  2. Installeer Docker

    Log via SSH in op de server. Op Linux installeert dit commando Docker inclusief Compose. Gebruik op Windows en macOS in plaats daarvan Docker Desktop.

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

    Zie je een versienummer, dan ben je klaar.

  3. Maak een map en een wachtwoord aan

    Maak een map aan en genereer een willekeurig wachtwoord voor het beheerdersaccount 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=

    Sla het tweede bestand op als .env en plak er het gegenereerde wachtwoord in (bijvoorbeeld met nano .env). Mag niet iedereen met het adres erin, stel dan een SERVER_PASSWORD in dat je aan je mensen geeft. Daarna zorgt chmod 600 .env ervoor dat andere gebruikers van de machine het bestand niet kunnen lezen.

  4. De docker-compose.yml

    Dit bestand komt in dezelfde map als docker-compose.yml. Pas de servernaam en de welkomsttekst aan zoals je wilt; de rest is prima zoals het is.

    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:

    De laatste twee instellingen zijn er voor Mumcord: geplakte afbeeldingen mogen groter zijn, en lange berichten worden niet afgekapt. Elke andere instelling volgt hetzelfde patroon MUMBLE_CONFIG_…, zie de documentatie van de image.

  5. Start de server en zet de poort open

    Start de server en kijk even in het log:

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

    Staat er Server listening on 0.0.0.0:64738, dan draait hij. Nu moet poort 64738 voor TCP en UDP van buitenaf bereikbaar zijn:

    Server met een firewall (bijvoorbeeld ufw): sudo ufw allow 64738/tcp en sudo ufw allow 64738/udp. Sommige providers hebben ook een firewall in hun klantenpaneel.

    Computer thuis: stel op je router port forwarding in voor 64738 TCP en UDP naar deze computer.

  6. Verbind met Mumcord

    Klik in Mumcord op + in de serverbalk en voer het IP-adres of de naam van je server in. Een naam is fijner dan een IP-adres: maak bij je domeinprovider een A-record aan, zoals voice.example.org, dat naar het IP-adres wijst.

    Bij de eerste verbinding toont Mumcord de vingerafdruk van het certificaat. Dat hoort zo: de server heeft bij de eerste start zijn eigen certificaat aangemaakt. Bevestig het één keer; verandert het later onverwacht, dan waarschuwt Mumcord je.

  7. Nodig mensen uit

    Stuur je mensen een link. Een klik erop opent Mumcord (of een andere Mumble-client) en verbindt meteen; zet een kanaalnaam aan het eind om in het juiste kanaal uit te komen:

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

    Wie Mumcord nog niet heeft, vindt het op mumcord.app. Stuur een serverwachtwoord apart van de link.

  8. Kanalen en rechten instellen

    Kanalen aanmaken en rechten uitdelen komt naar Mumcord met Epic 4. Gebruik tot die tijd één keer de officiële Mumble-client:

    1. Verbind met de gebruikersnaam SuperUser en het wachtwoord uit .env.

    2. Rechtsklik op het bovenste kanaal → Toevoegen, voor elk kanaal dat je wilt.

    3. Zodat je niet elke keer SuperUser nodig hebt: verbind met Mumcord onder je eigen naam en klik linksonder op je naam → Registreren op deze server. Daarna, als SuperUser: bovenste kanaal → Bewerken → Groepen → voeg je naam toe aan de groep admin.

Onderhoud en problemen

Hoe update ik de server?

Zet de nieuwe versie achter image: in docker-compose.yml (zie de lijst op Docker Hub) en voer dan docker compose pull en docker compose up -d uit. Kanalen en registraties blijven behouden.

Hoe maak ik een back-up?

Alles wat ertoe doet, staat in het volume mumble_data. Pauzeren, inpakken, verdergaan: docker compose stop, dan docker run --rm -v mumble_data:/data -v "$PWD":/backup alpine tar czf /backup/mumble-backup.tar.gz -C /data . en tot slot docker compose start.

Niemand kan de server bereiken.

Bijna altijd is de poort dicht. Controleer met docker compose ps of de container draait, en dan de firewall, de firewall van je provider en je router (stap 5). Staat de server thuis, dan kun je het openbare adres vanuit je eigen netwerk misschien niet bereiken; test dan met het lokale IP-adres.

Verbinden lukt, maar de spraak hapert.

Meestal staat alleen TCP open en UDP niet. Mumcord valt dan vanzelf terug op TCP. Dat werkt, maar is trager. Zet ook UDP 64738 open.

Ik ben het SuperUser-wachtwoord vergeten.

Zet een nieuw wachtwoord in .env en voer docker compose up -d uit. De server neemt het bij elke start over.

Meer hulp vind je in de wiki en in de issues op GitHub. Wiki → Issues →