Guide

Kör din egen Mumble-server

Mumcord behöver ingen speciell server: en vanlig Mumble-server är allt som krävs. Med Docker är din igång på ungefär 15 minuter, även om du aldrig har gjort det förut.

  • 64738 port, TCP och UDP
  • 1 kärna och 512 MB RAM klarar dussintals personer
  • 0 € öppen källkod; du betalar bara för maskinen

I åtta steg

  1. Välj en maskin

    Enklast är en liten Linux-server hos en hostingleverantör (en ”VPS” för några euro i månaden). Den är igång dygnet runt och har en fast adress. En dator hemma eller en Raspberry Pi fungerar också; då måste du öppna en port i din router (steg 5).

    Mumble kräver väldigt lite kraft. Anslutningen spelar större roll: varje person som pratar använder ungefär 40–100 kbit/s.

  2. Installera Docker

    Logga in på servern via SSH. På Linux installerar det här kommandot Docker inklusive Compose. På Windows och macOS använder du Docker Desktop i stället.

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

    Ser du ett versionsnummer är du redo.

  3. Skapa en mapp och ett lösenord

    Skapa en mapp och generera ett slumpmässigt lösenord för administratörskontot 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=

    Spara den andra filen som .env och klistra in det genererade lösenordet (till exempel med nano .env). Om inte alla som har adressen ska komma in, sätt ett SERVER_PASSWORD som du ger till ditt gäng. Sedan håller chmod 600 .env andra användare på maskinen borta från filen.

  4. docker-compose.yml

    Den här filen hamnar i samma mapp som docker-compose.yml. Ändra servernamn och välkomsttext som du vill; resten är bra som det är.

    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 två sista inställningarna finns där för Mumcord: inklistrade bilder får vara större, och långa meddelanden klipps inte av. Alla andra inställningar följer samma mönster MUMBLE_CONFIG_…, se dokumentationen för imagen.

  5. Starta och öppna porten

    Starta servern och ta en snabb titt i loggen:

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

    När det står Server listening on 0.0.0.0:64738 är den igång. Nu måste port 64738 för TCP och UDP gå att nå utifrån:

    Server med brandvägg (till exempel ufw): sudo ufw allow 64738/tcp och sudo ufw allow 64738/udp. Vissa leverantörer har även en brandvägg i sin kundpanel.

    Dator hemma: ställ in portvidarebefordran i din router för 64738 TCP och UDP till den här datorn.

  6. Anslut med Mumcord

    Klicka på + i serverlisten i Mumcord och ange serverns IP-adress eller namn. Ett namn är trevligare än en IP: skapa en A-post hos din domänleverantör, till exempel voice.example.org, som pekar på IP-adressen.

    Vid första anslutningen visar Mumcord certifikatets fingeravtryck. Det är väntat: servern skapade sitt eget certifikat vid första starten. Bekräfta det en gång; om det oväntat ändras senare varnar Mumcord dig.

  7. Bjud in folk

    Skicka en länk till ditt gäng. Ett klick på den öppnar Mumcord (eller någon annan Mumble-klient) och ansluter direkt; lägg till ett kanalnamn på slutet för att hamna i rätt kanal:

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

    Den som inte har Mumcord än hittar det på mumcord.app. Skicka ett serverlösenord separat från länken.

  8. Sätt upp kanaler och behörigheter

    Att skapa kanaler och dela ut behörigheter kommer till Mumcord med Epic 4. Fram till dess använder du den officiella Mumble-klienten en gång:

    1. Anslut med användarnamnet SuperUser och lösenordet från .env.

    2. Högerklicka på den översta kanalen → Lägg till, för varje kanal du vill ha.

    3. Så att du inte behöver SuperUser varje gång: anslut med Mumcord under ditt eget namn och klicka på ditt namn längst ner till vänster → Registrera dig på den här servern. Sedan, som SuperUser, översta kanalen → Redigera → Grupper → lägg till ditt namn i gruppen admin.

Underhåll och problem

Hur uppdaterar jag servern?

Skriv den nya versionen efter image: i docker-compose.yml (se listan på Docker Hub) och kör sedan docker compose pull och docker compose up -d. Kanaler och registreringar finns kvar.

Hur gör jag en säkerhetskopia?

Allt som är viktigt ligger i volymen mumble_data. Pausa, packa, fortsätt: docker compose stop, sedan docker run --rm -v mumble_data:/data -v "$PWD":/backup alpine tar czf /backup/mumble-backup.tar.gz -C /data . och till sist docker compose start.

Ingen kan nå servern.

Nästan alltid är porten stängd. Kontrollera med docker compose ps att containern körs, sedan brandväggen, leverantörens brandvägg och din router (steg 5). Om servern står hemma kanske du inte når den publika adressen inifrån ditt eget nätverk; testa då med den lokala IP-adressen.

Anslutningen fungerar, men rösten laggar.

Oftast är bara TCP öppet, inte UDP. Mumcord går då över till TCP av sig själv. Det fungerar men är långsammare. Öppna även UDP 64738.

Jag har glömt SuperUser-lösenordet.

Skriv ett nytt i .env och kör docker compose up -d. Servern tillämpar det vid varje start.

Mer hjälp finns i wikin och i issues på GitHub. Wiki → Issues →