Twój bot Discord online 24/7: poradnik hostingu
Masz swojego bota Discord. Grzecznie rozdaje role, reaguje na komendy albo pilnuje moderacji, a społeczność jest zadowolona. Do momentu, gdy zamykasz laptopa i bot idzie offline. Brzmi znajomo? Czas przenieść bota tam, gdzie będzie online dzień i noc, bez potrzeby trzymania włączonego komputera.
Dobre zarządzanie botem sprowadza się w praktyce do czterech rzeczy: stabilnego miejsca do działania, bezpiecznie przechowanego tokena, automatycznego restartu po crashu i logów, do których możesz wrócić, gdy coś pójdzie nie tak. Przejdziemy przez nie po kolei.
Dlaczego twój komputer to zły host
Do budowania i testowania bota własny komputer jest w porządku. Do działania 24/7 nie, i ma to niewiele wspólnego z tym, jak jest szybki. Problem tkwi we wszystkim dookoła:
- Aktualizacje i restarty. Windows instaluje aktualizację, komputer się restartuje, a bot znika, aż to zauważysz. Usypiasz komputer — bot śpi razem z nim.
- Prąd i hałas. Gamingowy komputer chodzący 24/7 dla bota ważącego kilka megabajtów to marnowanie rachunku za prąd, a wentylatory naprawdę słychać w nocy.
- Domowy internet. Łącze czasem pada, router co jakiś czas dostaje inny adres IP, a podczas awarii u dostawcy bot jest offline dokładnie tak długo jak ty.
- Wszystko na jednej maszynie. Gdy komputer crashuje w trakcie grania, pociągasz bota za sobą.
Raspberry Pi w szafce to fajna alternatywa i potrafi działać, ale też wisi na twoim domowym łączu i twoim gniazdku. Małe miejsce w centrum danych, z redundantnym zasilaniem i stałym, szybkim łączem, rozwiązuje wszystkie te problemy za jednym zamachem. I nie, nie potrzebujesz do tego ciężkiego serwera: większość botów jest wyjątkowo lekka.
Node.js czy Python: oba w porządku
Dwa najpopularniejsze sposoby budowy bota Discord to JavaScript z discord.js (działa na Node.js) i Python z discord.py. Funkcjonalnie dla większości botów to bez różnicy: oba obsłużą komendy, przetworzą eventy i dogadają się z API Discorda. Wybierz po prostu język, który już znasz.
Dla hostingu liczy się głównie to:
- Zapisz swoje zależności. Z
package.json(Node) lubrequirements.txt(Python) serwer instaluje dokładnie te same pakiety co na twojej maszynie. Bez tych plików "u mnie działa" staje się powracającą rozmową. - Znaj swoją komendę startową. Coś w rodzaju
node index.jsalbopython main.py. To właśnie host wykonuje, żeby uruchomić bota, więc przetestuj to lokalnie przed wgraniem. - Nie przeszacowuj zasobów. Przeciętny bot społecznościowy zużywa tylko skromną ilość pamięci. Boty muzyczne i boty cache'ujące dużo danych to wyjątek; te lubią więcej RAM-u.
Token to klucz do twojego bota
Token bota, który tworzysz w Discord Developer Portal, daje pełną kontrolę nad botem. Każdy, kto go zdobędzie, może w imieniu twojego bota wysyłać wiadomości, opuszczać serwery albo zaspamować twoją społeczność. Tokeny wyciekają częściej, niż myślisz, i prawie zawsze tak samo: siedzą na sztywno w kodzie i trafiają na GitHuba. Publiczne repozytoria są automatycznie skanowane przez złośliwe skrypty; wyciekły token bywa wykorzystany w ciągu kilku minut.
Tak powinno to wyglądać:
- Nigdy nie wpisuj tokena bezpośrednio w kod, tylko do pliku
.envalbo do zmiennych środowiskowych panelu hostingu. - Zadbaj, żeby plik
.envbył w.gitignorei nigdy nie trafił na GitHuba. - Nigdy nie wypisuj tokena w logach. Pliki logów też się udostępnia, choćby prosząc o pomoc przy problemie.
- Token jednak wyciekł? Zresetuj go natychmiast w Discord Developer Portal. Stary token od razu przestaje działać.
Dawaj też botowi tylko te uprawnienia i intenty, których naprawdę potrzebuje. Bot rozdający role nie musi być administratorem. Gdyby jednak coś poszło nie tak, szkody będą ograniczone.
Auto-restart: crashe się zdarzają, downtime nie musi
Każdy bot czasem crashuje. Nieoczekiwany błąd w kodzie, chwilowa czkawka połączenia z API Discorda, zależność zachowująca się inaczej, niż zakładasz. Na własnym komputerze oznacza to: bot offline, aż przypadkiem spojrzysz. U dobrego hosta nie, bo panel pilnuje twojego procesu i automatycznie uruchamia bota ponownie, gdy tylko się zatrzyma. Zwykle bot jest z powrotem online w kilka sekund, zanim ktokolwiek w społeczności to zauważy.
Uczciwie jednak: auto-restart to plaster, nie lekarstwo. Jeśli bot crashuje co pięć minut, automatyczne restarty tylko maskują prawdziwego buga w kodzie. Widzisz w panelu serię restartów pod rząd? Zanurkuj w logi i usuń przyczynę. Łap błędy w kodzie tam, gdzie się da, żeby jedna nieudana komenda nie wywracała całego bota.
Czytanie logów: nudne, ale niezbędne
Gdy bot dziwnie się zachowuje, logi to twój najlepszy przyjaciel. Przez konsolę na żywo w panelu hostingu widzisz dokładnie, co bot wyprawia: kiedy wystartował, jakie komendy przychodzą i jaki błąd pojawił się tuż przed awarią.
Kilka wskazówek, żeby naprawdę z tego skorzystać:
- Loguj ważne momenty: start, połączenie z Discordem i każdy przechwycony błąd, najlepiej ze znacznikiem czasu. Przy skardze typu "bot wczoraj wieczorem nie działał" możesz wtedy szukać celowanie.
- Nie loguj wszystkiego. Zapisywanie każdej przychodzącej wiadomości robi logi nieczytelnymi, a w dodatku może naruszać prywatność.
- Traktuj poważnie ostrzeżenia o rate limitach. Jeśli bot wysyła za dużo żądań do API Discorda, jest przyhamowywany i wydaje się powolny. Winowajcą często jest pętla w kodzie.
W naszej bazie wiedzy znajdziesz instrukcje wgrywania i zarządzania botem przez panel, w tym gdzie znaleźć konsolę i logi.
Zacznij za darmo w MC-Node
Piękno botów Discord polega na tym, że są tak lekkie, iż hosting nie musi prawie nic kosztować. W MC-Node nie kosztuje wręcz nic: pakiet Starter dla hostingu botów Discord jest darmowy, za 0 zł miesięcznie. Twój bot działa na naszym własnym sprzęcie w centrum danych Previder PDC2 w Hengelo, z dyskami NVMe i ochroną DDoS, na łączu, które nie pada, bo ktoś w domu włączył mikrofalówkę.
Przez panel webowy wgrywasz pliki, ustawiasz komendę startową i zmienne środowiskowe (tam właśnie mieszka twój token) i śledzisz konsolę na żywo. Gdy bot crashuje, jest automatycznie uruchamiany ponownie. Jeśli bot kiedyś wyrośnie z ubranka, na przykład przy dużym bocie muzycznym, zawsze możesz przeskoczyć na mocniejsze rozwiązanie, ale dla większości botów społecznościowych to aż nadto.
Chcesz mieć bota online 24/7 jeszcze dziś wieczorem? Uruchom darmowy serwer bota przez mc-node.net/store/discord-bot-hosting, wgraj kod i gotowe. Jeśli się nie spodoba, nic cię nie wiąże.