Instalacja TS3AudioBot na serwerze VPS KVM Ubuntu 16.04

Tagi: #<Tag:0x00007f8df9834af8> #<Tag:0x00007f8df9834a30>

Część Wstępna

TS3AudioBot to otwartoźródłowy projekt bota do TeamSpeaka, dobra alternatywa dla Sinusbota.
Cechuje się dużo niższym zużyciem zasobów w stosunku do swojego konkurenta.
Oferuje on odtwarzanie piosenek z YouTube i SoundClouda. Posiada rozbudowany, lecz łatwy w ustawieniu system uprawnień.

Wymagania

Do instalacji TS3AudioBot będziemy potrzebowali:

  • Serwer VPS z systemem Ubuntu 16.04 64bit,
  • Konto root na VPS,
  • Pakiet screen,
  • Kilka innych pakietów, które zaraz zainstalujemy,
  • Serwer TeamSpeak, na którym już wkrótce rozpiecznie pracę nasz bot :wink:

:warning: Jeśli nie posiadasz jeszcze serwera VPS, możesz go kupić tutaj
:warning: Podczas zamawiania wprowadź TIMOPROJECT.PL w odpowiednią rubrykę a otrzymasz zniżkę w wysokości 10% oraz wspomożesz autora poradnika i zmotywujesz do tworzenia kolejnych

Część Techniczna

Instalacja pakietów

Każde oprogramowanie jest złożone z różnych elementów. Korzysta z funkcji oferowanych przez mniejsze i większe pakiety.
Należy je zainstalować, aby oprogramowanie mogło poprawnie działać.

Na samym początku aktualizujemy nasze paczki systemowe, korzystając z polecenia:

apt update && apt upgrade

Następnie wpisujemy poniższe komendy, by dodać klucze potrzebne do instalacji pakietu mono:

apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
apt install apt-transport-https
echo "deb https://download.mono-project.com/repo/ubuntu stable-xenial main" | tee /etc/apt/sources.list.d/mono-official-stable.list
apt update

Czas na instalację mono-devel. Instalacja tego pakietu potrwa troszę dłużej :wink:

apt install mono-devel

Instalujemy jeszcze kilka innych pakietów, w tym te do obsługi głosu przez bota:

apt install libopus-dev ffmpeg libc6-dev unzip screen nano

Nasz bot będzie obsługiwał odtwarzanie piosenek z YouTube, więc używamy polecenia:

apt install python-pip
pip install youtube_dl

Wszystkie pakiety zostały zainstalowane.

Tworzenie użytkownika

Tworzymy użytkownika, na którym będzie uruchomiony nasz bot.
W poradniku zastosuję nazwę bot.

Wykonujemy następującą komendę, by dodać nowego użytkownika:

adduser bot

Zostaniemy podwójnie poproszeni o podanie hasła. Wpisujemy je.

Po wpisaniu system poprosi nas o dodatkowe dane - nie musimy ich podawać. Wciskamy enter pięciokrotnie.

Następnie klawiszem Y potwierdzamy poprawność wpisanych danych.

Przechodzimy na konto bota, wpisując komendę:

su bot

Zmieniamy katalog na domyślny komendą:

cd

By móc korzystać z pakietu screen, używamy komendy:

script /dev/null

Pobieranie bota

TS3AudioBot.zip (3,4 MB)

Tworzymy katalog na pliki naszego bota oraz do niego przechodzimy:

mkdir bot && cd bot

Pobieramy bota komendą:

wget -O TS3AudioBot.zip https://forum.lvlup.pro/uploads/default/original/2X/5/5b2479e13745c3a1f22d552dcf1c5c604af1469e.zip

Wypakowujemy pliki bota:

unzip TS3AudioBot.zip

Nasz folder po wykonaniu komendy ls powinien wyglądać tak:

Pierwsze uruchomienie

Dzięki pierwszemu uruchomieniu w głównym katalogu bota tworzą się pliki konfiguracyjne.
Uruchamiamy bota, a następnie go zatrzymujemy, by móc go skonfigurować.

W tym celu uruchamiamy screena, bez którego nasze procesy po zamknięciu konsoli wyłączyły by się:

screen

Powinno pojawić się nam okno z tekstem:

Należy wtedy wcisnąć enter.
voilà, mamy otwartą sesję terminalu, która będzie podtrzymywana, kiedy z niego wyjdziemy.

Uruchamiamy bota komendą:

mono TS3AudioBot.exe

Podczas pierwszego uruchomienia będziemy mieli kilka opcji do ustawienia.
Pierwszą z nich jest adres naszego serwera TeamSpeak.
W przypadku, kiedy znajduje się on na tym samym VPS co nasz bot, wpisujemy localhost.
Powinno to wyglądać tak:

Zatwierdzamy enterem i idziemy dalej.

Pojawi się zapytanie o hasło. Jeśli nasz serwer nie ma hasła, klikamy enter.

Jeśli serwer TeamSpeak działa, bot powinien się połączyć, a naszym oczom ukazać informacja o jego sukcesie. Zauważymy go również na lobby naszego serwera:

Pierwsze uruchomienie już za nami. Wyłączamy bota, wykonując skrót klawiszowy Ctrl + C:

Jak widzimy, bot wyszedł z serwera:

Konfiguracja głównych ustawień bota

Nasz bot działa, lecz będzie wyglądał i działał lepiej, jak spersonalizujemy jego ustawienia.

Aby tego dokoanć, wprowadzamy poniższą komendę w naszą linię poleceń:

nano ts3audiobot.toml

Ukaże się nam obraz taki jak ten:

Nie będą interesowały nas wszystkie linijki w tym pliku konfiguracyjnym.
Pokażę, jak poprawnie ustawić najważniejsze funkcje.

Pierwszą z nich jest nazwa bota, znajdziemy ją w 29 linijce od góry.
Domyślne ustawienie to TS3AudioBot:

Zmieniamy je według własnego uznania. W moim przypadku będzie to “Bot Muzyczny”:

Kolejną istotną rzeczą jest zakres głośności bota.
Oczywiście jest to zakres minimalnego i maksymalnego ustawienia - dokładna głośność będzie regulowana przez użytkownika poprzez komendę.
Zaleca się zostawienie w domyślnym ustawieniu, lecz jeśli lubisz (na prawdę) głośnno słuchać muzyki, możesz to zmienić:

Następną opcją wymagającą zmiany jest lokalizacja pliku youtube-dl, odpowiadającego za odtwarzanie utworów z YouTube.
Domyślnie opcja wygląda tak:

Zmianiamy ją na na /usr/local/bin/youtube-dl
Po zmianie, opcja będzie wyglądała tak:

Zapisujemy plik skrótem klawiszomy Ctrl + X i potwierdzamy guzikiem Y

Konfiguracja uprawnień

Plik z uprawnieniami umożliwia nam przydzielenie różnym rolom różnych uprawnień.
Dla przykładu, utworzymy na serwerze rolę DJ, która będzie umożliwiała standardowe sterowanie botem.
Dodamy również wszystkie uprawnienia bota roli Server Admin.

Pobieramy oficjalny plik z uprawnieniami. Wykonujemy komendę

wget https://raw.githubusercontent.com/Splamy/TS3AudioBot/master/TS3AudioBot/Rights/DefaultRights.toml

Zmieniamy jego nazwę z DefaultRights.toml na rights.toml komendą:

mv DefaultRights.toml rights.toml

Przystępujemy do edycji. Wykonujemy komendę:

nano rights.toml

W pliku widzimy wstępnie przygotowane uprawnienia, a wygląda to tak:

Przechodzimy do sekcji uprawnień Administratora. Wygląda tak:

Parametr groupid odpowiada za ID grupy na serwerze, do której będzie przypisana rola.
Aby sprawdzić ID grupy Administratora na twoim serwerze TeamSpeak, przejdź do Listy Grup na serwerze.
Liczba obok nazwy grupy to jej ID.
W moim przypadku, jest to 6:

Takie też ID wpisujemy w plik rights.toml, który właśnie edytujemy.

Drugim parametrem jest useruid. Odpowiada on za przypisanie danej roli do pojedyńczego użytkownika, na przykład jeśli chcemy ustawić mu daną rolę bota, nie nadając grupy na serwerze.
Aby je uzyskać, wchodzimy w ustawienia jednej z grup, jaką posiada użytkownik. Po prawej stronie znajdujemy jego nick i prawym guzikiem wybieramy opcję “Copy Unique ID to clipboard”:

Twoje ID będzie się różniło od mojego, lecz będzie podobnej wielkości i również zakończone znakiem =.
Moje wygląda tak: DKiTSjjaBN4/HCAulrEj82A3NSk=
Wklejamy je do pliku uprawnień bota.

Po dokonaniu edycji, sekcja będzie wyglądała tak:

Następna sekcja jest bardziej obszerna, ponieważ definiuje poszczególne uprawnienia dla roli. To będzie nasza rola DJ.
Z groupid postępujemy analogiczne jak w przypadku sekcji wyżej.

Poniżej znajdziemy uprawnienia:

Możemy je edytować. Dla przykładu chcę, aby rola DJ nie miała uprawnień do historii wykonanych komend. Usuwam więc linijki, w których uprawnienia zaczynają się od cmd.history.
Po tej zmianie, uprawnienia tej roli będą wyglądały tak:

Zapisujemy plik skrótem klawiszowym Ctrl + X i potwierdzamy guzikiem Y

Wszystkie przetłumaczone i wyjaśnione uprawnienia z tej sekcji znajdują się na dole poradnika.

Uruchamianie bota

Nasz bot będzie chodził całodobowo, a jego sesja będzie podtrzymywania przez screena.

Uruchamiamy go komendą:

mono TS3AudioBot.exe

Efekt będzie taki:

Uprawnienia bota

Sam bot też potrzebuje podstawowych uprawnień na serwerze, takich jak dostęp do wchodzenia na kanały czy mówienia na nich.
Najprostszym rozwiązaniem będzie nadanie botowi uprawnienia Server Admina.

Po nadaniu odpowiedniej grupy botowi, jego panel boczny będzie wyglądał tak:

voilà

Nasz bot jest już na serwerze. Działa.

W następnej części poradnika nauczysz się kompleksowo obsługiwać bota.

Część Informacyjna

Lista podstawowych komend wraz z opisem

  • add: Dodaje utwór do kolejki.
  • clear: Czyści listę odtwarzania.
  • disconnect: Wyłącza instancje bota.
  • help: Wyświetla stronę pomocy.
  • history: Pokazuje historię odtwarzania.
  • kickme: Zgadnij :wink:
  • link: Podaje adres URL aktualnego utworu.
  • loop: Włącza i wyłącza powtarzanie aktualnej listy odtwarzania.
  • next: Odtwarza następny utwór z listy odtwarzania.
  • pause: Zatrzymuje utwór. Wznów używając !play
  • play: Odtwarza utwór. Podaj URL z YouTube, lub lokalizację z dysku VPSa.
  • previous: Odtwarza poprzedni utwór z listy odtwarzania.
  • quit: Zamyka proces bota.
  • repeat: Włącza i wyłącza powtarzanie aktualnego utworu.
  • seek: Przełącza do danej minuty w utworze.
  • song: Podaje nazwę aktualnego utworu.
  • stop: Zatrzymuje aktualny utwór.
  • volume: Zmienia głośność.

Lista podstawowych uprawnień wraz z opisem

  • cmd.play: Umożliwia odtwarzanie utworów.
  • cmd.pause: Umożliwia zatrzymanie utworu
  • cmd.stop: Umożliwia wyłączenie utworu.
  • cmd.seek: Umożliwia zmianę czasu utworu.
  • cmd.volume: Umożliwia zmianę głośności.
  • cmd.add: Umożliwia dodanie utworu do kolejki.
  • cmd.clear: Umożliwia wyczyszczenie kolejki.
  • cmd.previous: Umożliwia zmianę utworu na poprzedni.
  • cmd.next: Umożliwia zmianę utworu na kolejny.
  • cmd.repeat.*: Umożliwia ustawienie powtarzania utworu.

Sterowanie botem

Każda komenda jest zbudowana i może być używana według poniższego schematu:

!<komenda> <argument> <argument> ...

Komenda zadziała, kiedy popełnisz literówkę.
Aplikacja jest na to przygotowana. Poniżej przedstawiam przykład komendy !history last 10 - każda z komend podanych zadziała:

historyy lastt 10
his la 10
higsndtor latuht 10

Dzięki za przeczytanie :sunglasses:

Źródło:
Splamy/TS3AudioBot

10lajków

Osobiście wolałbym download z bezpośredniego źródła :confused:

1lajk

Też wolałem dać - lecz nie można znaleźć bezpośredniego linku .zip do pobrania, ponieważ strona z oficjalnym pobieraniem działa jako proxy.
Oczywiście, można było pobrać wersję z Githuba i kompilować sobie ją, lecz jest to zbyt wysoki poziom. Poradnik jest dedykowany początkującym użytkownikom.

wget https://codeload.github.com/Splamy/TS3AudioBot/zip/master
mv master master.zip

1 dodatkowa linijka, a zawsze będzie pewność, że pobierasz najnowszą wersję :wink:

1lajk

Jak dodać kolejnego bota ?

a potem cyk

wget -O master.zip https://codeload.github.com/Splamy/TS3AudioBot/zip/master

I mamy 0 dodatkowych linijek :stuck_out_tongue:

3lajki

@Timo poradnik taki sobie mogłeś dać na Debian instalację nie każdy korzysta z Ubuntu mogłeś pokazać jak uruchomić bota w screen 1 lub 10 poradnik posiada mało informacji.

Większość rzeczy działających na Ubuntu zadziała też i na Debianie.

Jednocześnie nic nie stoi na przeszkodzie żebyś napisał poradnik dla Debiana @Qmis :wink:
Zawsze +1 do poradników biorących udział w konkursie.

Witam mam pytanie dlaczego jak po kilku krokach trzeba wpisać ```
nano ts3audiobot.toml i jak to wpisauje to w putty wyskakuje mi bash: nano: command not found

Widocznie edytor ten nie jest zainstalowany. Użyj sudo apt install nano i kontynuuj od tego punktu :slight_smile:

1lajk

Uzupełniłem poradnik o pakiet nano, dzięki za zauważenie :wink:

1lajk

Wyłączyłem putty po czym ponownie włączyłem aby zainstalować nano teraz jak wrócić do tamtego folderu?
wszystko nazywałem jak na poradniku

-bash: cd: bot: No such file or directory
root@vps6737:~#

Folder ten został utworzony na koncie bota.
Najlepiej przejdź przez

cd

Do katalogu głównego będąc na koncie bota, a następnie

cd bot

by wejść w folder z plikami :wink:

Okej bot działa ale jak chce aby na przykład 2 różne rangi mogły go kontrolować to jak to zrobić?

Jeśli chcesz przypisać je do jednej utworzonej roli, dodaj oba ID rangi do rights.toml :wink:

Po przecinku? najlepiej jak być to zrobił i dał ss był bym wdzięczny

I jeszcze jedno czy jest opcja zrobienie 2 bota na serwer a jak tak to jak

Teraz gdy chcę wejść do tego bota to mi nie działa wyskakuje
bot@vps6737:~$ mono TS3AudioBot.exe
Cannot open assembly ‘TS3AudioBot.exe’: No such file or directory.
bot@vps6737:~$
chce wejść ponieważ nie działają linki z YouTube a wcześniej działały

Domyślnie masz tak:
obraz
Ustaw na

groupid = [ 0, 1 ]

zamieniając 0 i 1 na ID grup z TSa.

Jutro dopiszę to do poradnika.

Musisz jeszcze wejść w katalog bota, wpisując

cd bot

Dopiero wtedy będziesz mógł uruchomić bota.