Vodič

Hostaj vlastiti Mumble poslužitelj

Mumcordu ne treba poseban poslužitelj: dovoljan je običan Mumble poslužitelj. S Dockerom je tvoj gore za otprilike 15 minuta, čak i ako to nikad prije nisi radio.

  • 64738 port, TCP i UDP
  • 1 jezgra i 512 MB RAM-a dovoljni su za desetke ljudi
  • 0 € otvoreni kod; plaćaš samo računalo

U osam koraka

  1. Odaberi računalo

    Najjednostavniji izbor je mali Linux poslužitelj kod pružatelja hostinga („VPS” za nekoliko eura mjesečno). Radi danonoćno i ima fiksnu adresu. Može i računalo kod kuće ili Raspberry Pi; tada moraš otvoriti port na routeru (korak 5).

    Mumbleu treba vrlo malo snage. Veza je važnija: svaka osoba koja govori troši otprilike 40–100 kbit/s.

  2. Instaliraj Docker

    Prijavi se na poslužitelj preko SSH-a. Na Linuxu ova naredba instalira Docker zajedno s Composeom. Na Windowsima i macOS-u umjesto toga koristi Docker Desktop.

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

    Ako vidiš broj verzije, spreman si.

  3. Napravi mapu i lozinku

    Napravi mapu i generiraj nasumičnu lozinku za administratorski račun 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=

    Spremi drugu datoteku kao .env i zalijepi generiranu lozinku (na primjer s nano .env). Ako ne smije ući svatko tko ima adresu, postavi SERVER_PASSWORD koji daš svojoj ekipi. Zatim chmod 600 .env drži ostale korisnike računala podalje od datoteke.

  4. docker-compose.yml

    Ova datoteka ide u istu mapu kao docker-compose.yml. Promijeni ime poslužitelja i tekst dobrodošlice po želji; ostalo je u redu kakvo jest.

    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:

    Zadnje dvije postavke tu su zbog Mumcorda: zalijepljene slike smiju biti veće, a duge poruke se ne režu. Svaka druga postavka slijedi isti obrazac MUMBLE_CONFIG_…, pogledaj dokumentaciju imagea.

  5. Pokreni ga i otvori port

    Pokreni poslužitelj i brzo pogledaj log:

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

    Kad piše Server listening on 0.0.0.0:64738, radi. Sada port 64738 za TCP i UDP mora biti dostupan izvana:

    Poslužitelj s vatrozidom (na primjer ufw): sudo ufw allow 64738/tcp i sudo ufw allow 64738/udp. Neki pružatelji imaju i vatrozid u korisničkom sučelju.

    Računalo kod kuće: na routeru postavi prosljeđivanje porta 64738 TCP i UDP na ovo računalo.

  6. Spoji se Mumcordom

    U Mumcordu klikni + u traci poslužitelja i upiši IP adresu ili ime svog poslužitelja. Ime je ljepše od IP-a: kod pružatelja domene napravi A zapis, poput voice.example.org, koji pokazuje na IP.

    Pri prvom spajanju Mumcord prikazuje otisak certifikata. To je očekivano: poslužitelj je pri prvom pokretanju napravio vlastiti certifikat. Potvrdi ga jednom; ako se kasnije neočekivano promijeni, Mumcord će te upozoriti.

  7. Pozovi ljude

    Pošalji svojoj ekipi poveznicu. Klik na nju otvara Mumcord (ili bilo koji drugi Mumble klijent) i odmah se spaja; dodaj ime kanala na kraj da sletiš u pravi kanal:

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

    Tko još nema Mumcord, naći će ga na mumcord.app. Lozinku poslužitelja pošalji odvojeno od poveznice.

  8. Postavi kanale i dozvole

    Stvaranje kanala i dodjela dozvola stižu u Mumcord s Epicom 4. Do tada jednom iskoristi službeni Mumble klijent:

    1. Spoji se s korisničkim imenom SuperUser i lozinkom iz .env.

    2. Desni klik na najviši kanal → Dodaj, za svaki kanal koji želiš.

    3. Da ti ne treba SuperUser svaki put: spoji se Mumcordom pod svojim imenom i klikni svoje ime dolje lijevo → Registriraj se na ovom poslužitelju. Zatim kao SuperUser: najviši kanal → Uredi → Grupe → dodaj svoje ime u grupu admin.

Održavanje i problemi

Kako ažurirati poslužitelj?

Upiši novu verziju iza image: u docker-compose.yml (pogledaj popis na Docker Hubu), zatim pokreni docker compose pull i docker compose up -d. Kanali i registracije ostaju sačuvani.

Kako napraviti sigurnosnu kopiju?

Sve što je važno nalazi se u volumenu mumble_data. Pauziraj, zapakiraj, nastavi: docker compose stop, zatim docker run --rm -v mumble_data:/data -v "$PWD":/backup alpine tar czf /backup/mumble-backup.tar.gz -C /data . i na kraju docker compose start.

Nitko ne može doći do poslužitelja.

Gotovo uvijek je port zatvoren. Provjeri s docker compose ps radi li kontejner, zatim vatrozid, vatrozid pružatelja usluge i svoj router (korak 5). Ako je poslužitelj kod kuće, javna adresa možda nije dostupna iz tvoje vlastite mreže; tada testiraj s lokalnom IP adresom.

Spajanje radi, ali glas kasni.

Obično je otvoren samo TCP, a ne UDP. Mumcord se tada sam prebacuje na TCP. To radi, ali je sporije. Otvori i UDP 64738.

Zaboravio sam lozinku za SuperUser.

Upiši novu u .env i pokreni docker compose up -d. Poslužitelj je primjenjuje pri svakom pokretanju.

Više pomoći naći ćeš u wikiju i u issuejima na GitHubu. Wiki → Issues →