Ceļvedis

Uzturi savu Mumble serveri

Mumcord nevajag īpašu serveri: pietiek ar parastu Mumble serveri. Ar Docker tavējais darbojas apmēram 15 minūtēs, pat ja to nekad iepriekš neesi darījis.

  • 64738 ports, TCP un UDP
  • 1 kodols un 512 MB RAM pietiek desmitiem cilvēku
  • 0 € atvērtais kods; maksā tikai par mašīnu

Astoņos soļos

  1. Izvēlies mašīnu

    Vienkāršākā izvēle ir neliels Linux serveris pie hostinga pakalpojumu sniedzēja (“VPS” par dažiem eiro mēnesī). Tas darbojas visu diennakti, un tam ir fiksēta adrese. Der arī dators mājās vai Raspberry Pi; tad tev maršrutētājā jāatver ports (5. solis).

    Mumble vajag ļoti maz jaudas. Svarīgāks ir savienojums: katrs runājošais izmanto apmēram 40–100 kbit/s.

  2. Instalē Docker

    Pieslēdzies serverim caur SSH. Uz Linux šī komanda instalē Docker kopā ar Compose. Uz Windows un macOS tā vietā izmanto Docker Desktop.

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

    Ja redzi versijas numuru, viss gatavs.

  3. Izveido mapi un paroli

    Izveido mapi un ģenerē nejaušu paroli administratora kontam 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=

    Saglabā otro failu kā .env un ielīmē ģenerēto paroli (piemēram, ar nano .env). Ja ne visiem, kam ir adrese, vajadzētu tikt iekšā, iestati SERVER_PASSWORD, ko iedosi saviem cilvēkiem. Pēc tam chmod 600 .env neļauj citiem mašīnas lietotājiem piekļūt failam.

  4. Fails docker-compose.yml

    Šis fails tajā pašā mapē jāsaglabā kā docker-compose.yml. Servera nosaukumu un sveiciena tekstu maini, kā vēlies; pārējais ir labi, kā ir.

    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:

    Pēdējie divi iestatījumi ir Mumcord dēļ: ielīmētie attēli drīkst būt lielāki, un garas ziņas netiek nogrieztas. Visi pārējie iestatījumi seko tam pašam MUMBLE_CONFIG_… paraugam, skaties attēla dokumentāciju.

  5. Startē un atver portu

    Startē serveri un ātri ieskaties žurnālā:

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

    Tiklīdz tur rakstīts Server listening on 0.0.0.0:64738, tas darbojas. Tagad portam 64738 TCP un UDP jābūt sasniedzamam no ārpuses:

    Serveris ar ugunsmūri (piemēram, ufw): sudo ufw allow 64738/tcp un sudo ufw allow 64738/udp. Dažiem pakalpojumu sniedzējiem ir arī ugunsmūris klientu panelī.

    Dators mājās: iestati maršrutētājā portu pāradresāciju 64738 TCP un UDP uz šo datoru.

  6. Pieslēdzies ar Mumcord

    Mumcord serveru joslā noklikšķini + un ievadi sava servera IP adresi vai nosaukumu. Nosaukums ir ērtāks par IP: izveido A ierakstu pie sava domēna pakalpojumu sniedzēja, piemēram, voice.example.org, kas norāda uz IP.

    Pirmajā savienojumā Mumcord parāda sertifikāta pirkstu nospiedumu. Tas ir gaidāms: serveris pirmajā startā izveidoja pats savu sertifikātu. Apstiprini to vienreiz; ja tas vēlāk negaidīti mainās, Mumcord tevi brīdinās.

  7. Uzaicini cilvēkus

    Nosūti saviem cilvēkiem saiti. Klikšķis uz tās atver Mumcord (vai jebkuru citu Mumble klientu) un uzreiz pieslēdzas; pievieno beigās kanāla nosaukumu, lai nonāktu pareizajā kanālā:

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

    Kam vēl nav Mumcord, tas to atradīs vietnē mumcord.app. Servera paroli sūti atsevišķi no saites.

  8. Iestati kanālus un atļaujas

    Kanālu izveide un atļauju piešķiršana Mumcord nāks ar Epic 4. Līdz tam vienreiz izmanto oficiālo Mumble klientu:

    1. Pieslēdzies ar lietotājvārdu SuperUser un paroli no .env.

    2. Labais klikšķis uz augšējā kanāla → Pievienot, katram kanālam, ko vēlies.

    3. Lai katru reizi nevajadzētu SuperUser: pieslēdzies ar Mumcord ar savu vārdu un noklikšķini uz sava vārda apakšā kreisajā pusē → Reģistrēties šajā serverī. Tad kā SuperUser: augšējais kanāls → Rediģēt → Grupas → pievieno savu vārdu grupai admin.

Uzturēšana un problēmas

Kā atjaunināt serveri?

Ieraksti jauno versiju aiz image: failā docker-compose.yml (skaties sarakstu Docker Hub), tad palaid docker compose pull un docker compose up -d. Kanāli un reģistrācijas saglabājas.

Kā izveidot rezerves kopiju?

Viss svarīgais glabājas sējumā mumble_data. Apturi, sapako, turpini: docker compose stop, tad docker run --rm -v mumble_data:/data -v "$PWD":/backup alpine tar czf /backup/mumble-backup.tar.gz -C /data . un visbeidzot docker compose start.

Neviens nevar sasniegt serveri.

Gandrīz vienmēr ports ir aizvērts. Ar docker compose ps pārbaudi, vai konteiners darbojas, tad ugunsmūri, pakalpojumu sniedzēja ugunsmūri un savu maršrutētāju (5. solis). Ja serveris ir mājās, no sava tīkla iekšienes publiskā adrese var nebūt sasniedzama; tad testē ar lokālo IP.

Savienojums strādā, bet balss aizkavējas.

Parasti atvērts ir tikai TCP, ne UDP. Tad Mumcord pats pārslēdzas uz TCP. Tas strādā, bet lēnāk. Atver arī UDP 64738.

Aizmirsu SuperUser paroli.

Ieraksti jaunu failā .env un palaid docker compose up -d. Serveris to piemēro katrā startā.

Vairāk palīdzības atradīsi wiki un GitHub pieteikumos (issues). Wiki → Issues →