Vejledning

Host din egen Mumble-server

Mumcord kræver ikke en særlig server: en helt almindelig Mumble-server er alt, hvad der skal til. Med Docker kører din på cirka 15 minutter, også selvom du aldrig har prøvet det før.

  • 64738 port, TCP og UDP
  • 1 kerne og 512 MB RAM klarer snesevis af personer
  • 0 € open source; du betaler kun for maskinen

I otte trin

  1. Vælg en maskine

    Det nemmeste er en lille Linux-server hos en hostingudbyder (en „VPS“ til nogle få euro om måneden). Den kører døgnet rundt og har en fast adresse. En computer derhjemme eller en Raspberry Pi virker også; så skal du åbne en port på din router (trin 5).

    Mumble kræver meget lidt kraft. Forbindelsen betyder mere: hver person, der taler, bruger omkring 40–100 kbit/s.

  2. Installér Docker

    Log ind på serveren over SSH. På Linux installerer denne kommando Docker inklusive Compose. På Windows og macOS skal du i stedet bruge Docker Desktop.

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

    Ser du et versionsnummer, er du klar.

  3. Opret en mappe og en adgangskode

    Opret en mappe, og generér en tilfældig adgangskode til administratorkontoen 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=

    Gem den anden fil som .env, og indsæt den genererede adgangskode (for eksempel med nano .env). Hvis ikke alle med adressen skal kunne komme ind, så sæt en SERVER_PASSWORD, som du giver til dine folk. Derefter holder chmod 600 .env maskinens andre brugere ude af filen.

  4. docker-compose.yml

    Denne fil skal ligge i samme mappe som docker-compose.yml. Ret servernavn og velkomsttekst, som du vil; resten er fint, som det er.

    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 sidste to indstillinger er der for Mumcords skyld: indsatte billeder må være større, og lange beskeder bliver ikke skåret af. Alle andre indstillinger følger samme mønster MUMBLE_CONFIG_…, se imagets dokumentation.

  5. Start den, og åbn porten

    Start serveren, og kast et hurtigt blik på loggen:

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

    Når der står Server listening on 0.0.0.0:64738, kører den. Nu skal port 64738 for TCP og UDP kunne nås udefra:

    Server med firewall (for eksempel ufw): sudo ufw allow 64738/tcp og sudo ufw allow 64738/udp. Nogle udbydere har også en firewall i deres kundepanel.

    Computer derhjemme: opsæt portvideresendelse på din router for 64738 TCP og UDP til denne computer.

  6. Forbind med Mumcord

    Klik på + i serverbjælken i Mumcord, og indtast din servers IP-adresse eller navn. Et navn er pænere end en IP: opret en A-record hos din domæneudbyder, for eksempel voice.example.org, der peger på IP'en.

    Første gang du forbinder, viser Mumcord certifikatets fingeraftryk. Det er forventet: serveren oprettede sit eget certifikat ved første start. Bekræft det én gang; hvis det senere ændrer sig uventet, advarer Mumcord dig.

  7. Invitér folk

    Send dine folk et link. Et klik på det åbner Mumcord (eller en hvilken som helst anden Mumble-klient) og forbinder med det samme; tilføj et kanalnavn til sidst for at lande i den rigtige kanal:

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

    Har nogen ikke Mumcord endnu, finder de det på mumcord.app. Send en serveradgangskode separat fra linket.

  8. Opsæt kanaler og tilladelser

    At oprette kanaler og uddele tilladelser kommer til Mumcord med Epic 4. Indtil da skal du bruge den officielle Mumble-klient én gang:

    1. Forbind med brugernavnet SuperUser og adgangskoden fra .env.

    2. Højreklik på den øverste kanal → Tilføj, for hver kanal du vil have.

    3. Så du ikke behøver SuperUser hver gang: forbind med Mumcord under dit eget navn, og klik på dit navn nederst til venstre → Registrér på denne server. Derefter, som SuperUser, øverste kanal → Redigér → Grupper → tilføj dit navn til gruppen admin.

Vedligehold og problemer

Hvordan opdaterer jeg serveren?

Skriv den nye version efter image: i docker-compose.yml (se listen på Docker Hub), og kør derefter docker compose pull og docker compose up -d. Kanaler og registreringer bevares.

Hvordan laver jeg en backup?

Alt det vigtige ligger i volumen mumble_data. Sæt på pause, pak, genoptag: docker compose stop, derefter docker run --rm -v mumble_data:/data -v "$PWD":/backup alpine tar czf /backup/mumble-backup.tar.gz -C /data . og til sidst docker compose start.

Ingen kan nå serveren.

Det er næsten altid porten, der er lukket. Tjek med docker compose ps, at containeren kører, og derefter firewallen, udbyderens firewall og din router (trin 5). Står serveren derhjemme, kan du måske ikke nå den offentlige adresse inde fra dit eget netværk; test så med den lokale IP.

Forbindelsen virker, men talen halter.

Som regel er kun TCP åben, ikke UDP. Mumcord falder så selv tilbage til TCP. Det virker, men er langsommere. Åbn også UDP 64738.

Jeg har glemt SuperUser-adgangskoden.

Skriv en ny i .env, og kør docker compose up -d. Serveren anvender den ved hver start.

Mere hjælp finder du i wikien og i issues på GitHub. Wiki → Issues →