Návod

Rozjeď si vlastní Mumble server

Mumcord nepotřebuje žádný speciální server: stačí obyčejný Mumble server. S Dockerem ten tvůj poběží zhruba za 15 minut, i když jsi nic takového ještě nedělal.

  • 64738 port, TCP i UDP
  • 1 jádro a 512 MB RAM zvládnou desítky lidí
  • 0 € open source; platíš jen za stroj

V osmi krocích

  1. Vyber stroj

    Nejjednodušší je malý linuxový server od poskytovatele hostingu („VPS“ za pár eur měsíčně). Běží nonstop a má pevnou adresu. Funguje i počítač doma nebo Raspberry Pi; pak musíš otevřít port na routeru (krok 5).

    Mumble potřebuje jen velmi málo výkonu. Důležitější je připojení: každý, kdo mluví, spotřebuje zhruba 40–100 kbit/s.

  2. Nainstaluj Docker

    Přihlas se na server přes SSH. Na Linuxu tenhle příkaz nainstaluje Docker včetně Compose. Na Windows a macOS místo toho použij Docker Desktop.

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

    Když uvidíš číslo verze, máš hotovo.

  3. Vytvoř složku a heslo

    Vytvoř složku a vygeneruj náhodné heslo pro administrátorský účet 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=

    Druhý soubor ulož jako .env a vlož do něj vygenerované heslo (například přes nano .env). Pokud se nemá dostat dovnitř každý, kdo zná adresu, nastav SERVER_PASSWORD, které dáš svým lidem. Pak chmod 600 .env zabrání ostatním uživatelům stroje v přístupu k souboru.

  4. Soubor docker-compose.yml

    Tenhle soubor patří do stejné složky jako docker-compose.yml. Název serveru a uvítací text si změň podle sebe; zbytek je v pořádku, jak je.

    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:

    Poslední dvě nastavení jsou tu kvůli Mumcordu: vložené obrázky můžou být větší a dlouhé zprávy se neusekávají. Každé další nastavení se řídí stejným vzorem MUMBLE_CONFIG_…, viz dokumentace k image.

  5. Spusť ho a otevři port

    Spusť server a rychle mrkni do logu:

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

    Jakmile se objeví Server listening on 0.0.0.0:64738, běží. Teď musí být port 64738 pro TCP i UDP dostupný zvenku:

    Server s firewallem (například ufw): sudo ufw allow 64738/tcp a sudo ufw allow 64738/udp. Někteří poskytovatelé mají firewall i ve svém zákaznickém panelu.

    Počítač doma: nastav na routeru přesměrování portu 64738 TCP i UDP na tenhle počítač.

  6. Připoj se Mumcordem

    V Mumcordu klikni na + v liště serverů a zadej IP adresu nebo název svého serveru. Název je hezčí než IP: u poskytovatele domény vytvoř záznam A, třeba voice.example.org, který ukazuje na tu IP.

    Při prvním připojení Mumcord ukáže otisk certifikátu. To je v pořádku: server si při prvním startu vytvořil vlastní certifikát. Jednou ho potvrď; pokud se později nečekaně změní, Mumcord tě varuje.

  7. Pozvi lidi

    Pošli svým lidem odkaz. Kliknutím se otevře Mumcord (nebo jakýkoli jiný klient Mumble) a hned se připojí; přidej na konec název kanálu, ať přistanou ve správném kanálu:

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

    Kdo ještě Mumcord nemá, najde ho na mumcord.app. Heslo k serveru pošli zvlášť, ne s odkazem.

  8. Nastav kanály a oprávnění

    Vytváření kanálů a přidělování oprávnění přijde do Mumcordu s Epicem 4. Do té doby jednou použij oficiálního klienta Mumble:

    1. Připoj se s uživatelským jménem SuperUser a heslem z .env.

    2. Pravým tlačítkem na horní kanál → Přidat, pro každý kanál, který chceš.

    3. Abys nemusel pokaždé používat SuperUsera: připoj se Mumcordem pod svým jménem a klikni na své jméno vlevo dole → Registrovat na tomto serveru. Pak jako SuperUser horní kanál → Upravit → Skupiny → přidej své jméno do skupiny admin.

Údržba a problémy

Jak aktualizuju server?

Napiš novou verzi za image: v docker-compose.yml (viz seznam na Docker Hubu), pak spusť docker compose pull a docker compose up -d. Kanály i registrace zůstanou zachované.

Jak udělám zálohu?

Všechno důležité je ve svazku mumble_data. Pozastavit, zabalit, pokračovat: docker compose stop, pak docker run --rm -v mumble_data:/data -v "$PWD":/backup alpine tar czf /backup/mumble-backup.tar.gz -C /data . a nakonec docker compose start.

Na server se nikdo nedostane.

Skoro vždycky je zavřený port. Přes docker compose ps zkontroluj, že kontejner běží, pak firewall, firewall poskytovatele a router (krok 5). Pokud je server doma, možná se na veřejnou adresu ze své vlastní sítě nedostaneš; v tom případě testuj s místní IP.

Připojení funguje, ale hlas se seká.

Většinou je otevřené jen TCP, ne UDP. Mumcord pak sám přejde na TCP. Funguje to, ale je to pomalejší. Otevři i UDP 64738.

Zapomněl jsem heslo SuperUsera.

Zadej nové do .env a spusť docker compose up -d. Server ho použije při každém startu.

Další pomoc najdeš ve wiki a v issues na GitHubu. Wiki → Issues →