ServerBot User Manual v1.10.0
ServerBot - Bot Discordowy rozwijany przez
Kamile320 posiadający funkcje jak:
- Administracja Serwera
- Odtwarzanie muzyki z plików hosta i linków YouTube'a
- Zarządzanie Komputerem Hosta
- Wykonywanie skryptów bash
- Logowanie wiadomości
- Tworzenie wątków
- Zarządzanie Plikami i Katalogami
- Obsługa bazy danych (SQLite3)
- Rozmowa ze Sztuczną Inteligencją (Google Gemini)
- I wiele więcej
Spis Treści
- Struktura Katalogowa
- Uruchomienie
- Uruchamianie Automatyczne
- Tokeny
- UserID i Administratorzy bota
- Windows - instalacja FFmpeg
- Moduły/Rozszerzenia Bota
- Komenda .ai
- Baza Danych (SQLite3)
- Komendy
Struktura Katalogowa:
- ServerBot.py - Główny plik skryptu
- setup.bat - Plik instalujący wymagane biblioteki pythona (Windows)
- setup.sh - Menu operacyjne: uruchamianie bota, instalowanie wymaganych biblioteki itp. (wymaga zainstalowania komendy "dialog")
- Logs.txt - Plik z Dziennikiem zdarzeń bota na serwerze
- manualPL.html - Manual Bota [PL]
- manualEN.html - Manual Bota [EN]
- Media - Katalog z Muzykami/Dźwiękami
- ACL - Dziennik wiadomości użytkowników (po włączeniu ACL)
- .env - Specjalny plik do przechowywania Tokenów Bota
- .venv - Wirtualne Środowisko Pythona (Po użyciu setup.sh - opcja 4)
- tempDB.txt - Plik z zawartością bazy danych (po użyciu .showdb)
-
Files - Katalog z resztą plików Bota
- favicon.ico - Ikona Manuala
- updates.txt - Plik z listą ostatnich aktualizacji
- Logs.txt - Kopia Logów Bota
- autorun.sh - Po użyciu .mkservice
- serverbot.db - Baza danych SQLite3
- systemd_add.py - Skrypt do dodawania bota do startu wraz z systemem poprzez systemd
- Inne Pliki (zdjęcia, nagrania, itp.)
- setup - Pliki konfiguracyjne
- setuplib.sh - Instalacja Bibliotek
- mkvenv.sh - Utworzenie venv
- requirement.txt - Plik z listą bibliotek pythonado instalacji
Zdj.1 - Uruchomienie skryptu
Pierwsze uruchomienie:
Bot do uruchomienia wymaga:
- Python 3.9 lub nowszy
- Połączenie z internetem
- Zainstalowane wymagane biblioteki pythona (patrz - zawartość setup.sh/setuplib.sh/requirements.txt)
- Dodanie do środowiska PATH plików FFmpeg - Tylko Windows (zobacz YT)
- System Operacyjny Linux(rekomendowany) / Windows / MacOS - Najlepiej 64bit
- setup.sh - wymaga komendy "dialog"
Należy poprzez IDE, terminal albo inny program uruchomić skrypt - python3 lub setup.sh.
Jeżeli coś pójdzie nie tak, Bot powinien dać znać w czym problem
i poprosić o zatwierdzenie wykonania korekty albo porzuci uruchomienie/instalację.
Po uruchomieniu skryptu, Bot powinien się połączyć z Discordem i być gotowy do pracy.
[!] Jest możliwość zainstalowania bota poprzez plik .deb - należy pamiętać że bot zainstaluje się w /usr/share/serverbot.
Używaj komendy serverbot z sudo, jeśli chcesz skonfigurować
autostart.
Aktualne Komendy Bota można zobaczyć używając komendy .help
Uruchamianie Automatyczne:
Korzystając z Bota może zechcesz aby automatycznie uruchamiał się wraz z systemem operacyjnym (Linux).
Aby to łatwo umożliwić istnieje komenda .mkservice
Po wpisaniu komendy trzeba podać dodatkową wartość:
def -> tworzy domyślny plik autorun.sh w katalogu
Files. Działa głównie na systemach opartych na Ubuntu
22.04 (Nie korzysta z utworzonego venv)
venv -> czasem przy instalacji modułów za pomocą pip3 może wyskoczyć błąd
externally managed pip.
W tym przypadku należy utworzyć Wirtualne Środowisko Pythona (Virtual Environment/Venv)
Jeśli jeszcze go nie utworzyłeś - rekomendowane jest utworzenie go w głównym katalogu Bota (ServerBot).
Przykład: .mkservice venv <- wykonujesz tą komendę na Discordzie gdy skrypt działa w głównym katalogu Bota.
UWAGA! Bot (a raczej setup.sh) jest przystosowany do nazwy katalogu z wirtualnym środowiskiem o nazwie ".venv".
Jeśli utworzyłeś ręcznie venv z inną nazwą katalogu, bot może się nie uruchomić!
Zalecane jest używanie odpowiednich opcji z setup.sh -> Bez problemu wszystko się zainstaluje i skonfiguruje jak trzeba.
Aby autostart zadziałał, należy ustawić pliki bota z uprawnieniami odczytu/zapisu/wykonania na 775 (r-x dla wszystkich, rwx dla właściciela i grupy) jeśli nie posiadają takich uprawnień.
Rekomenduję przenieść pliki Bota do katalogu /ServerBot (żeby nie był w innych katalogach). Nie instaluj bota w katalogu domowym jeśli chcesz uruchamiać go wraz z systemem.
Jak utworzyć venv:
- znajdując się w głównym katalogu bota wpisz: python3 -m venv .venv
- aby aktywować venv: source .venv/bin/activate (jako root)
- sprawdź wersję i lokalizację: which python
- gdy już jesteś w venv, uruchom setup.sh
- aby wyjść z venv wpisz w termianalu: deactivate
- albo prościej - użyj opcji 4 w setup.sh
Pełna dokuntacja venv tutaj.
Zdj. 2 - opcje setup.sh
Tokeny
Bot korzysta z tokenów: API Discorda, Gemini oraz z ID użytkowników.
Aby bot się uruchomił należy wypełnić odpowiednimi danymi plik
.env
Schemat:
TOKEN="discord token"
AI_token="gemini token (do komendy .ai)"
admin_usr = ['twoje ID']
dscserv_link = 'Link do Serwera Discord'
addstable = 'stable_link of Discord Bot'
addtesting = 'testing_link of Discord Bot'
service_monitor = 'True/False' -> włącza komendę .service
service_list = 'Lista usług systemd do monitorowania poprzez Discorda'
showmodulemessages = 'True/False' -> wyświetla informacje o włączonych modułach Bota
ACLmodule = 'True/False' -> Uruchamia funkcję
AdvancedChannelListener
aimodel = 'gemini-2.5-flash' -> wybrany model językowy gemini
instructions = ['Instrukcje dla modelu językowego']
extendedErrMess = 'True/False' -> włącza/wyłącza rozszerzone komunikaty błędów
ID użytkownika i Administratorzy bota
Niektóre komendy korzystają z funkcji i danych związanych z twoim systemem operacyjnym,
więc wymagają uprawnień administratora do uruchomienia - chyba nie chcesz żeby ktoś ci usunął system!
Aby te komendy wykonać, należy podać w
admin_usr ID uprawnionych użytkowników do wykonywania tych komend - to muszą być zaufane osoby, a najlepiej tylko ty!
Niektóre komendy pozwalają na ingerowanie w serwer itp. - takie komendy są przeznaczone dla moderatorów bota; można ich dodać poprzez nadanie im uprawnień moderatora w bazie danych.
Należy użyć komendy
.db op {userID} - nada status moderatora bota danemu użytkownikowi. Analogicznie odbieranie uprawnień to
.db deop {userID}
To mogą być zaufani moderatorzy Serwera. Jeśli nikt nie jest dodany jako moderator, tylko użytkownicy z
admin_usr będą mogli korzystać z komend moderatora.
Windows - instalacja FFmpeg
FFmpeg odpowiada za odtwarzanie muzyki na Kanałach Głosowych. Na Windowsie instalacja FFmpeg wygląda inaczej niż na Linuksie.
Należy ręcznie pobrać pliki FFmpeg i dodać je do zmiennej środowiskowej PATH według poniższych kroków:
- Pobierz plik .zip programu FFmpeg z oficjalnej strony GitHub, najlepiej z podanego w skrypcie linku.
- Wypakuj pliki tak, aby pliki .exe znajdowały się w lokalizacji C:\ffmpeg\bin
- Otwórz Menu Start i wyszukaj 'Zmienne środowiskowe' - wybierz 'Edytuj zmienne środowiskowe systemu'
- Wybierz zmienną 'Path' w 'Zmiennych Użytkownika/Systemu' i kliknij 'Edytuj'
- Kliknij 'Nowy' i dodaj 'C:\ffmpeg\bin' (bez cudzysłowów)
- Kliknij OK aby zamknąć wszystkie okna
- Uruchom ponownie komputer aby zastosować zmiany
Po wykonaniu tych kroków, FFmpeg powinien być poprawnie zainstalowany i gotowy do użycia przez Bota.
Moduły/Rozszerzenia Bota
Bot posiada moduły/rozszerzenia rozszerzające funkcje, które można włączyć lub wyłączyć w pliku .env
Moduły są także dostępne jako osobne repozytoria (Boty Discord) na GitHubie.
-
AdvancedChannelListener - rejestruje wiadomości użytkowników na serwerze i zapisuje je w pliku ACL/[DiscordUserID].txt oraz wszystkie wiadomości w ACL/default/message.txt
Przydatny do monitorowania użytkowników na serwerze i weryfikowania kto jest kim. Może łamać prywatność użytkowników, więc używaj z rozwagą.
Jeśli nie zamierzasz używać tego modułu - ustaw w .env ACLmodule = 'False' (ustwaione domyślnie).
-
.service - komenda pozwalająca na podgląd statusu usług systemctl na serwerze hostującym bota. Włącz ją w pliku .env ustawiając service_monitor = True oraz wpisując listę usług do service_list.
Komenda .ai
Komenda .ai pozwala na rozmowę ze sztuczną inteligencją. Wykorzystuje API Gemini firmy Google.
Wystarczy zdobyć token gemini (na stronie
Google AI dev) i wpisać go do pliku .env w polu 'AI_token'.
W pliku .env możesz ustawić model językowy (domyślnie gemini-2.5-flash) w polu 'aimodel', oraz instrukcje dla modelu w polu 'instructions'.
Rekomenduję zostawić domyślną instrukcję ograniczającą limit odpowiedzi do 1500 znaków - długa odpowiedź może nie zostać wysłana na kanał discord i spowodować błąd.
Baza Danych (SQLite3)
Bot korzysta z bazy danych SQLite3 do przechowywania informacji o użytkownikach takich jak:
- ID użytkownika
- Status użytkownika (Moderator itp.)
- Inne dane związane z użytkownikami (w przyszłości)
Baza danych znajduje się w katalogu
Files o nazwie 'serverbot.db'. Bot automatycznie tworzy bazę danych i zbiera dane przy każdej wysłanej wiadomości na serwerze.
Jest to wymagane do poprawnego działania funkcji wykorzystujących bazę danych, takie jak: komendy moderatora.
W przyszłości planowane jest dodanie więcej funkcji wykorzystujących bazę danych, niekoniecznie wykorzystujących ID użytkowników.
Poniższe komendy pozwalają zarzadzać bazą danych z poziomu Discorda:
- .db register {userID} {username} - ręcznie rejestruje użytkownika w bazie danych
- .db remove {userID} - usuwa użytkownika z bazy danych
- .db op {userID} - nadaje status moderatora bota danemu użytkownikowi
- .db deop {userID} - odbiera status moderatora bota danemu użytkownikowi
- .db select {userID} - wyświetla dane użytkownika o podanym ID
- .db setnickname {nickname} {userID} - ustawia nick użytkownika w bazie danych; jeśli nie podano ID, ustawia nick dla użytkownika wywołującego komendę
- .showdb - zapisuje zawartość bazy danych do pliku tempDB.txt i wysyła jako odpowiedź
Podstawowe Komendy:
======Chat======
hello
bye
hi
hello_there
|
=========Converter=========
binary {dec. number}
hexa {dec. number}
convert {type} {number}
|
========Fun========
random
banner
botbanner
blankthing
apple
ai
badge
|
======Admin======
ShutDown
copylog
bash
rebuild
mkshortcut
mkservice {mode}
service
pingip
module
db
showdb
|
=====BotInfo=====
manual {web/local}
credits
time
ping
release
next_update
|
========FileManager========
cd {directory}
dir {mode}
file {mode} {filename}
touch {file} {content}
|
====VoiceChannel====
join
leave
play {file dir}
ytplay {type} {link}
ytsearch
stop
pause
resume
waiting
|
=====ModOnly=====
testbot
testos
disks
delete
cleaner
webreq
kick
ban
unban
invitegen
echo
|