Najprostszy sposób na Sinusbot na VPS KVM w 3 krokach

Zombie
ts3, sinusbot, do-zaktualizowania
SystemZ
SystemZ Admin lvlup.pro

O poradniku

Najszybszy i najprostszy sposób na Sinusbota który działa na VPS KVM Game Pro 2GB RAM i większych https://lvlup.pro/oferta/vps-kvm-game-pro/ takie VPSy mają standardowo zainstalowane Ubuntu 14.04 LTS 64bit które współpracuje z Dockerem.

Pozwala nam to łatwo i niezawodnie postawić bota muzycznego do TeamSpeak 3 oraz Discord.

Przed wykonaniem komend należy zalogować się na konto root! Aby zalogować się na konto root używamy komendy sudo su.

1. Instalacja Dockera

Uruchamiamy automatyczną instalację

wget -qO- https://get.docker.com/ | sh

2. Pierwszy start

Tworzymy folder /opt/docker/sinusbot/ w którym będą nasze pliki sinusbota. Następnie uruchamiamy go tylko na chwilę aby zapisać wygenerowane hasło do konta admina. Pierwsze uruchomienie może potrwać kilka minut, jest wtedy ściągany obraz kontenera.

mkdir -p /opt/docker/sinusbot/data /opt/docker/sinusbot/scripts
chown -R 3000:3000 /opt/docker/sinusbot
docker run --name sinusbot -v /opt/docker/sinusbot/data:/sinusbot/data -v /opt/docker/sinusbot/scripts:/sinusbot/scripts -p 8087:8087 galexrt/sinusbot:latest

Gdy już bot zaczyna się uruchamiać zobaczymy coś podobnego jak poniżej, jest tam podane hasło konta admina które sobie zapisujemy.

Unable to find image 'galexrt/sinusbot:latest' locally
latest: Pulling from galexrt/sinusbot
3a635c0fcefb: Pull complete 
bf3f7e9b4869: Pull complete 
ad323864e1f8: Pull complete 
b4d3fc870200: Pull complete 
4e69d6ff0e56: Pull complete 
64e4c23d41f5: Pull complete 
56e0c016beba: Pull complete 
82f4e8d2fde0: Pull complete 
7b230823ae17: Pull complete 
d31c4b7723e7: Pull complete 
708a52a754d4: Pull complete 
Digest: sha256:49c3160a08db2d40489a370c021caf8d594ba484377888de3d81f7b7f39cbed0
Status: Downloaded newer image for galexrt/sinusbot:latest
-> Updating sinusbot user and group id if necessary ...
-> Correcting file and mount point permissions ...
=> Corrected mount point permissions.
-> Checking if scripts directory is empty
-> Copying original sinusbot scripts to volume ...
=> Sinusbot scripts copied.
-> Checking for old data location ...
=> You are good to go! You are already using the new data directory, located at "/sinusbot/data".
=> Starting SinusBot (https://sinusbot.com) by Michael Friese ...
 ___ ___ _  _ _   _ ___ ___  ___ _____  BETA
/ __|_ _| \| | | | / __| _ )/ _ \_   _|
\__ \| || .` | |_| \__ \ _ \ (_) || |  
|___/___|_|\_|\___/|___/___/\___/ |_|  

Version: 0.9.16-10f0fad
(C) 2013-2016 Michael Friese. All rights reserved.

2017/02/16 22:46:23 [GENERAL/SCRIPTS] INFO   Loading ScriptPlugin advertising.js
2017/02/16 22:46:23 [GENERAL/SCRIPTS] INFO   Loading ScriptPlugin aloneMode.js
2017/02/16 22:46:23 [GENERAL/SCRIPTS] INFO   Loading ScriptPlugin badchan.js
2017/02/16 22:46:23 [GENERAL/SCRIPTS] INFO   Loading ScriptPlugin bookmark.js
2017/02/16 22:46:23 [GENERAL/SCRIPTS] INFO   Loading ScriptPlugin covatar.js
2017/02/16 22:46:23 [GENERAL/SCRIPTS] INFO   Loading ScriptPlugin dev.js
2017/02/16 22:46:23 [GENERAL/SCRIPTS] INFO   Loading ScriptPlugin followme.js
2017/02/16 22:46:23 [GENERAL/SCRIPTS] INFO   Loading ScriptPlugin idle.js
2017/02/16 22:46:23 [GENERAL/SCRIPTS] INFO   Loading ScriptPlugin metadata.js
2017/02/16 22:46:23 [GENERAL/SCRIPTS] INFO   Loading ScriptPlugin norecording.js
2017/02/16 22:46:23 [GENERAL/SCRIPTS] INFO   Loading ScriptPlugin rememberChannel.js
2017/02/16 22:46:23 [GENERAL/SCRIPTS] INFO   Loading ScriptPlugin showcase.js
2017/02/16 22:46:23 [GENERAL/SCRIPTS] INFO   Loading ScriptPlugin sound.js
2017/02/16 22:46:23 [GENERAL/SCRIPTS] INFO   Loading ScriptPlugin welcometext.js
-------------------------------------------------------------------------------
Generating new bot instance with account 'admin' and password '1vGGelxh'
PLEASE MAKE SURE TO CHANGE THE PASSWORD DIRECTLY AFTER YOUR FIRST LOGIN!!!
-------------------------------------------------------------------------------

Chwilowo usuwamy nasz kontener ale bez obaw, dane zostają bezpieczne w folderze :)

docker rm sinusbot

Gdy już zapisaliśmy hasło, wciskamy Ctrl + C aby wyłączyć bota.

3. Start i autorestart

Jako że mamy już dane do admina to uruchomimy bota muzycznego w ten sposób aby sam się restartował, czy to przy crashu czy przy restarcie VPS, bez potrzeby używania crona.

docker run --name sinusbot -v /opt/docker/sinusbot/data:/sinusbot/data -v /opt/docker/sinusbot/scripts:/sinusbot/scripts -p 8087:8087 --restart=always -d galexrt/sinusbot:latest

Po wykonaniu tej momendy wyświetli nam się długi ciąg znaków w tym stylu:

e7f0ff8ce4c20a795d8018457a33b54edb4469f7e87c2f566dbd6dac9c6cfd30

Oznacza to że nasz bot się właśnie włącza i możemy już wejść do jego panelu który znajduje się na porcie 8087 naszego VPS więc wchodzimy w przeglądarkę na adres http://ip-naszego-vps:8087 i logujemy się korzystając z loginu admin oraz hasła które wcześniej zapisaliśmy.

Przydatne komendy

Aktualizowanie Sinusbota

Co jakiś czas możemy chcieć zaktualizować bota do najnowszej wersji, wystarczą dwie komendy, jedna ściąga nowy obraz, druga restartuje aby użyć nowego obrazu

docker pull galexrt/sinusbot:latest
docker restart sinusbot

Zatrzymywanie

docker stop sinusbot

Start

docker start sinusbot
Timo
Timo Moderator forum.lvlup.pro

Jaka jest różnica w użytkowaniu / kontrolowaniu bota jeśli jest postawiony "normalnie" lub z dockerem? Czy tą metodą można postawić kilka sinusbotów?

anon10657637
anon10657637

Za pomocą Dockera możesz postawić więcej instancji Sinusbota, które będą działały odrębnie, na różnych portach. Ten sposób działa nie zadziała na OpenVZ, ze względu na wirtualizacje.

SystemZ
SystemZ Admin lvlup.pro

Główna różnica tkwi w prostocie i zasadniczym braku różnic konfiguracji między systemem operacyjnym jakiego używasz dopóki wspiera on Dockera.

Można też łatwo przenosić instalację aplikacji pomiędzy VPSami przez zwykle przeniesienie folderu /opt/docker/sinusbot i powtórzenie pierwszego i trzeciego kroku z tej instrukcji.

Docker nie ruszy na OpenVZ lub wymagałoby to dużej kombinacji przynoszącej kiepską wydajność.

Flyspeak
Flyspeak

Po odpaleniu 2 instancji komendą: docker run --name sinusbot2 -v /opt/docker/sinusbot/data:/sinusbot/data -v /opt/docker/sinusbot/scripts:/sinusbot/scripts -p 8088:8087 --restart=always -d galexrt/sinusbot:latest

Sinusbot wypluwa: Error Invalid server address, wrong password, security level too high for our identity, client version too old or given default channel non-existant / passworded.

Pierwsza instancja działa prawidłowo. Pomożecie???

Flyspeak
Flyspeak

Naprawione wystarczyło w grupie serwera MusicBOT ustawić wartość 100 dla permisji

i_client_max_clones_uid

szymhal
szymhal

Okej, stworzyłem zgodnie z tym poradnikiem, ale gdy próbuję dodać 3 instancję, to i tak dostaję powiadomienie, że wykorzystałem już limit. Czegoś nie rozumiem?

anon10657637
anon10657637

Tak, bo musisz postawić jeszcze raz SinusBot'a na Dockerze, tylko uruchomionego na innym porcie. Oprogramowanie samo w sobie we wersji darmowej posiada limit 2 instancji.

szymhal
szymhal

SystemZ:

docker run --name sinusbot -v /opt/docker/sinusbot/data:/sinusbot/data -v /opt/docker/sinusbot/scripts:/sinusbot/scripts -p 8087:8087 galexrt/sinusbot:latest

Czyli panie _an0 mam taką komendę wrzucić? docker run --name sinusbot2 -v /opt/docker/sinusbot/data:/sinusbot/data -v /opt/docker/sinusbot/scripts:/sinusbot/scripts -p 8088:8087 galexrt/sinusbot:latest Wtedy działa na porcie 8088, lecz i tak bierze hasła, rzeczy itp z pierwszej instancji, która jest na porcie 8087. Czyli moim rozumowaniem, mam wpisać taką komendę: docker run --name sinusbot2 -v /opt/docker/sinusbot2/data:/sinusbot/data -v /opt/docker/sinusbot2/scripts:/sinusbot/scripts -p 8088:8087 galexrt/sinusbot:latest

@EDIT: Okej, dałem sobie radę, kroki powtórzyłem z inną nazwą.

F4mouS
F4mouS

Jak próbuje połączyć się na serwer mam taki błąd, o co może chodzić?

2017/09/18 20:16:12 5df94184 de8664fd INFO The bot could not connect. This might have several reasons: the server doesn't exist at that address, the server password is wrong, the default channel doesn't exist, the bot has been banned, the server is an illegal installation or the password is wrong , the security level of your identity is too low or the server does not allow the version of the client you are using. See our Wiki / Forums for more help. 2017/09/18 20:16:12 5df94184 de8664fd INFO New connection status 0; Error 0 2017/09/18 20:16:13 5df94184 de8664fd INFO TSClient quit.

anon10657637
anon10657637

F4mouS:

The bot could not connect. This might have several reasons: the server doesn’t exist at that address, the server password is wrong, the default channel doesn’t exist, the bot has been banned, the server is an illegal installation or the password is wrong , the security level of your identity is too low or the server does not allow the version of the client you are using. See our Wiki / Forums for more help.

Wystarczy czytac logi ;)

F4mouS
F4mouS

Ip to 127.0.0.1 które jest dobre hasła nie ma a tym bardziej nie jest zbanowany

anon10657637
anon10657637

To pewnie wersja clienta jest za stara, ew. cos przemajstrowane z poziomem security.

F4mouS
F4mouS

Security jest na 8. Jak zmienić wersje klienta TS3?

anon10657637
anon10657637

Aktualizujac sinusbota najprawdopodobniej. Ja bym podbijal na oficjalne forum i tam zadawal takie pytania, tutaj raczej jest kwestia oprogramowania, anizeli samej instalacji.

F4mouS
F4mouS

Właśnie ja instalowałem go wraz z dockerem i tu pliki są inaczej ułożone niż w orginalnym bocie gdzie klient ts3 jest w /opt/ts3soundboard

anon10657637
anon10657637

To jak napisalem - podbijaj na ich oficjalne forum, pewnie tam pomoga.

F4mouS
F4mouS

Nawet jeśli jest z dockerem? :P

anon10657637
anon10657637

To raczej wina Sinusa anizeli Dockera

F4mouS
F4mouS

A ty nie wiesz przypadkiem w którym folderze jest sam klient TS3 z którego sinus z tego tematu korzysta?

anon10657637
anon10657637

Obecnie stycznosc z ts3 mam taka, ze oplacam mojego VPSa, na ktorym stoi m.in. projekt pewnego launchera do Minecraft, oraz wlasnie serwer ts3.

F4mouS
F4mouS

A ok :P

n4r3x
n4r3x

Wiecie może czemu tak długo pobierają mi się piosenki przez !yt? Zaczęło to występować od wczoraj wcześniej było ok, około 3 minutowe piosenki pobierały się parę sekund, a teraz potrafi to trwać parę minut... Jeśli to nie jest miejsce na takie pytania to proszę żeby mnie ktoś przekierował gdzieś gdzie mogę o tym napisać :slight_smile:

Timo
Timo Moderator forum.lvlup.pro

Mój znajomy wczoraj również doświadczył takiego problemu, 4-minutowa piosenka pobierała mu się przez minutę. Normalnie praktycznie od razu startuje. Serwer VPS, na którym był postawiony SinusBot nie był z lvlup.

SystemZ
SystemZ Admin lvlup.pro

Jeśli było też tak u innego dostawcy to może kwestia usługi z której ściąga się utwór np. YT?

luxDev
luxDev Pionier

Także mam ten problem dzisiaj, piosenka pobiera się około 45 sekund.

Nieznajomy11
Nieznajomy11 Moderator forum.lvlup.pro

Może youtube ma automatyczny mechanizm dawania jakiejś "rurki" - dla stabilności przy większym ruchu, czy czegoś podobnego?

Timo
Timo Moderator forum.lvlup.pro

A może YT powoli blokuje ten youtube-dl do sinusbota? Przecież przy nim nie są odtwarzane reklamy, YT nie zarabia. Strony internetowe (w tym moją ulubioną .org) do pobierania już usuwają :/

Pantoflarz
Pantoflarz

a skąd on wie kto pobiera? ponieważ to pakiet systemowy za to odpowiada, wątpie aby sinusbot tutaj miał cokolwiek do powiedzenia.

Timo
Timo Moderator forum.lvlup.pro

To nie sinusbot pobiera i nie jest on winny, aplikacja youtube-dl pobiera. Może to ją blokują?

Nieznajomy11
Nieznajomy11 Moderator forum.lvlup.pro