Guida

Ospita il tuo server Mumble

Mumcord non ha bisogno di un server speciale: basta un normale server Mumble. Con Docker il tuo è pronto in circa 15 minuti, anche se non l'hai mai fatto prima.

  • 64738 porta, TCP e UDP
  • 1 core e 512 MB di RAM bastano per decine di persone
  • 0 € open source; paghi solo la macchina

In otto passaggi

  1. Scegli una macchina

    La scelta più semplice è un piccolo server Linux di un provider di hosting (una “VPS” da pochi euro al mese). È acceso giorno e notte e ha un indirizzo fisso. Va bene anche un computer di casa o un Raspberry Pi; in quel caso devi aprire una porta sul router (passaggio 5).

    Mumble richiede pochissima potenza. Conta di più la connessione: ogni persona che parla usa circa 40–100 kbit/s.

  2. Installa Docker

    Accedi al server via SSH. Su Linux questo comando installa Docker, Compose compreso. Su Windows e macOS usa invece Docker Desktop.

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

    Se vedi un numero di versione, sei pronto.

  3. Crea una cartella e una password

    Crea una cartella e genera una password casuale per l'account amministratore 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=

    Salva il secondo file come .env e incollaci la password generata (per esempio con nano .env). Se non tutti quelli che conoscono l'indirizzo devono poter entrare, imposta una SERVER_PASSWORD da dare alla tua gente. Poi chmod 600 .env tiene gli altri utenti della macchina lontani dal file.

  4. Il docker-compose.yml

    Questo file va nella stessa cartella, come docker-compose.yml. Cambia a piacere il nome del server e il testo di benvenuto; il resto va bene così.

    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:

    Le ultime due impostazioni ci sono per Mumcord: le immagini incollate possono essere più grandi e i messaggi lunghi non vengono tagliati. Tutte le altre impostazioni seguono lo stesso schema MUMBLE_CONFIG_…, vedi la documentazione dell'immagine.

  5. Avvialo e apri la porta

    Avvia il server e dai un'occhiata veloce al log:

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

    Quando compare Server listening on 0.0.0.0:64738, è in esecuzione. Ora la porta 64738 per TCP e UDP deve essere raggiungibile dall'esterno:

    Server con firewall (per esempio ufw): sudo ufw allow 64738/tcp e sudo ufw allow 64738/udp. Alcuni provider hanno anche un firewall nel pannello clienti.

    Computer di casa: configura sul router un port forwarding per 64738 TCP e UDP verso questo computer.

  6. Connettiti con Mumcord

    In Mumcord clicca su + nella barra dei server e inserisci l'indirizzo IP o il nome del tuo server. Un nome è più comodo di un IP: crea un record A presso il tuo provider del dominio, per esempio voice.example.org, che punti all'IP.

    Alla prima connessione Mumcord mostra l'impronta digitale del certificato. È normale: il server ha creato il proprio certificato al primo avvio. Confermala una volta; se in seguito cambia inaspettatamente, Mumcord ti avvisa.

  7. Invita le persone

    Manda un link alla tua gente. Cliccandolo si apre Mumcord (o qualsiasi altro client Mumble) e si connette subito; aggiungi il nome di un canale alla fine per atterrare nel canale giusto:

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

    Chi non ha ancora Mumcord lo trova su mumcord.app. Manda l'eventuale password del server separatamente dal link.

  8. Configura canali e permessi

    Creare canali e assegnare permessi arriverà in Mumcord con l'Epic 4. Fino ad allora, usa una volta il client Mumble ufficiale:

    1. Connettiti con il nome utente SuperUser e la password presa da .env.

    2. Clic destro sul canale principale → Aggiungi, per ogni canale che vuoi.

    3. Per non dover usare SuperUser ogni volta: connettiti con Mumcord con il tuo nome e clicca sul tuo nome in basso a sinistra → Registrati su questo server. Poi, come SuperUser, canale principale → Modifica → Gruppi → aggiungi il tuo nome al gruppo admin.

Manutenzione e problemi

Come aggiorno il server?

Scrivi la nuova versione dopo image: in docker-compose.yml (vedi l'elenco su Docker Hub), poi esegui docker compose pull e docker compose up -d. Canali e registrazioni restano.

Come faccio un backup?

Tutto ciò che conta sta nel volume mumble_data. Metti in pausa, impacchetta, riprendi: docker compose stop, poi docker run --rm -v mumble_data:/data -v "$PWD":/backup alpine tar czf /backup/mumble-backup.tar.gz -C /data . e infine docker compose start.

Nessuno riesce a raggiungere il server.

Quasi sempre la porta è chiusa. Controlla con docker compose ps che il container sia in esecuzione, poi il firewall, il firewall del provider e il tuo router (passaggio 5). Se il server è a casa, dall'interno della tua rete potresti non raggiungere l'indirizzo pubblico; in quel caso prova con l'IP locale.

La connessione funziona, ma la voce va a scatti.

Di solito è aperto solo TCP, non UDP. Mumcord allora ripiega da solo su TCP. Funziona, ma è più lento. Apri anche UDP 64738.

Ho dimenticato la password di SuperUser.

Scrivine una nuova in .env ed esegui docker compose up -d. Il server la applica a ogni avvio.

Altro aiuto lo trovi nella wiki e nelle issue su GitHub. Wiki → Issues →