Vadovas

Pasileisk savo Mumble serverį

Mumcord nereikia jokio specialaus serverio: užtenka paprasto Mumble serverio. Su Docker tavasis veiks maždaug per 15 minučių, net jei niekada to nedarei.

  • 64738 prievadas, TCP ir UDP
  • 1 branduolys ir 512 MB RAM aptarnauja dešimtis žmonių
  • 0 € atvirasis kodas; moki tik už kompiuterį

Per aštuonis žingsnius

  1. Pasirink kompiuterį

    Paprasčiausia – nedidelis Linux serveris iš talpinimo paslaugų teikėjo („VPS“ už kelis eurus per mėnesį). Jis veikia visą parą ir turi pastovų adresą. Tiks ir kompiuteris namuose ar Raspberry Pi; tada maršrutizatoriuje reikės atidaryti prievadą (5 žingsnis).

    Mumble reikia labai mažai galios. Svarbesnis ryšys: kiekvienas kalbantis žmogus naudoja apie 40–100 kbit/s.

  2. Įdiek Docker

    Prisijunk prie serverio per SSH. Linux sistemoje ši komanda įdiegia Docker kartu su Compose. Windows ir macOS sistemose vietoj to naudok Docker Desktop.

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

    Jei matai versijos numerį – viskas paruošta.

  3. Sukurk aplanką ir slaptažodį

    Sukurk aplanką ir sugeneruok atsitiktinį slaptažodį administratoriaus paskyrai 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=

    Antrąjį failą išsaugok kaip .env ir įklijuok sugeneruotą slaptažodį (pvz., su nano .env). Jei ne visi, žinantys adresą, turėtų patekti, nustatyk SERVER_PASSWORD, kurį duosi saviems. Tada chmod 600 .env neleis kitiems kompiuterio naudotojams pasiekti failo.

  4. docker-compose.yml

    Šis failas keliauja į tą patį aplanką kaip docker-compose.yml. Serverio pavadinimą ir pasisveikinimo tekstą keisk kaip nori; visa kita tinka taip, kaip yra.

    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:

    Paskutiniai du nustatymai skirti Mumcord: įklijuoti paveikslėliai gali būti didesni, o ilgos žinutės nenukerpamos. Visi kiti nustatymai laikosi to paties MUMBLE_CONFIG_… šablono, žr. atvaizdo dokumentaciją.

  5. Paleisk ir atidaryk prievadą

    Paleisk serverį ir greitai pažvelk į žurnalą:

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

    Kai matai Server listening on 0.0.0.0:64738, serveris veikia. Dabar 64738 prievadas TCP ir UDP turi būti pasiekiamas iš išorės:

    Serveris su ugniasiene (pvz., ufw): sudo ufw allow 64738/tcp ir sudo ufw allow 64738/udp. Kai kurie teikėjai turi ugniasienę ir savo klientų skydelyje.

    Kompiuteris namuose: maršrutizatoriuje nustatyk 64738 TCP ir UDP prievado peradresavimą į šį kompiuterį.

  6. Prisijunk su Mumcord

    Mumcord serverių juostoje spustelėk + ir įvesk savo serverio IP adresą arba pavadinimą. Pavadinimas patogesnis nei IP: pas domeno teikėją sukurk A įrašą, pvz., voice.example.org, nukreiptą į IP.

    Pirmą kartą jungiantis Mumcord parodo sertifikato kontrolinį kodą. Taip ir turi būti: serveris pirmojo paleidimo metu susikūrė savo sertifikatą. Patvirtink jį vieną kartą; jei vėliau jis netikėtai pasikeis, Mumcord tave įspės.

  7. Pakviesk žmones

    Nusiųsk saviems nuorodą. Ją spustelėjus atsidaro Mumcord (ar bet kuris kitas Mumble klientas) ir iš karto prisijungia; pridėk kanalo pavadinimą gale, kad patektum į reikiamą kanalą:

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

    Kas dar neturi Mumcord, ras jį mumcord.app. Serverio slaptažodį siųsk atskirai nuo nuorodos.

  8. Sukurk kanalus ir teises

    Kanalų kūrimas ir teisių suteikimas Mumcord atsiras su 4 epiku. Iki tol vieną kartą pasinaudok oficialiu Mumble klientu:

    1. Prisijunk su naudotojo vardu SuperUser ir slaptažodžiu iš .env.

    2. Dešiniuoju spustelėk viršutinį kanalą → Pridėti, kiekvienam norimam kanalui.

    3. Kad nereikėtų kaskart naudoti SuperUser: prisijunk su Mumcord savo vardu ir apačioje kairėje spustelėk savo vardą → Registruotis šiame serveryje. Tada kaip SuperUser: viršutinis kanalas → Redaguoti → Grupės → pridėk savo vardą į grupę admin.

Priežiūra ir problemos

Kaip atnaujinti serverį?

Įrašyk naują versiją po image: faile docker-compose.yml (žr. sąrašą Docker Hub), tada paleisk docker compose pull ir docker compose up -d. Kanalai ir registracijos išsaugomi.

Kaip pasidaryti atsarginę kopiją?

Viskas, kas svarbu, yra tome mumble_data. Sustabdyk, supakuok, tęsk: docker compose stop, tada docker run --rm -v mumble_data:/data -v "$PWD":/backup alpine tar czf /backup/mumble-backup.tar.gz -C /data . ir galiausiai docker compose start.

Niekas negali pasiekti serverio.

Beveik visada uždarytas prievadas. Su docker compose ps patikrink, ar konteineris veikia, tada ugniasienę, paslaugų teikėjo ugniasienę ir maršrutizatorių (5 žingsnis). Jei serveris namuose, iš savo tinklo vidaus viešo adreso gali nepasiekti; tada bandyk su vietiniu IP.

Prisijungti pavyksta, bet balsas vėluoja.

Dažniausiai atidarytas tik TCP, o ne UDP. Tada Mumcord pats pereina prie TCP. Tai veikia, bet lėčiau. Atidaryk ir UDP 64738.

Pamiršau SuperUser slaptažodį.

Įrašyk naują į .env ir paleisk docker compose up -d. Serveris jį pritaiko kiekvieno paleidimo metu.

Daugiau pagalbos rasi wiki ir GitHub issues. Wiki → Issues →