Bot w Rust jest budowany na twoim własnym komputerze i przesyłany jako jeden gotowy program dla Linuksa; na serwerze nic się nie kompiluje, więc cała pamięć twojego planu trafia do bota. Żeby uruchomić takiego bota:
- Zbuduj go dla Linuksa x86-64 na swoim komputerze.
- Zmień typ: na stronie Bot, w sekcji Kod, kliknij Zmień to, co działa obok Runtime i wybierz Rust Bot.
- Prześlij program (domyślnie nazwany
bot) w Files albo ustaw Link do pobrania (opcjonalnie) w sekcji Kod. - Wklej swój token na stronie Bot, w sekcji Discord, i kliknij Połącz.
- Naciśnij Uruchom i obserwuj Console.
1. Zbuduj dla Linuksa
rustup target add x86_64-unknown-linux-musl
cargo build --release --target x86_64-unknown-linux-musl
Program ląduje w target/x86_64-unknown-linux-musl/release/, nazwany tak jak twój crate. Target musl tworzy jeden samodzielny plik, który nie zależy od bibliotek systemowych serwera. Budowanie na Windowsie lub macOS wymaga linkera dla Linuksa; zajmują się tym narzędzia takie jak cross albo cargo-zigbuild. Plik .exe ani build dla macOS nie uruchomi się na serwerze.
2. Minimalny bot serenity
Cargo.toml (zależności)
[dependencies]
serenity = "0.12"
tokio = { version = "1", features = ["macros", "rt-multi-thread"] }
src/main.rs
use serenity::async_trait;
use serenity::model::gateway::Ready;
use serenity::prelude::*;
struct Handler;
#[async_trait]
impl EventHandler for Handler {
async fn ready(&self, _ctx: Context, ready: Ready) {
println!("Logged in as {}", ready.user.name);
}
}
#[tokio::main]
async fn main() {
let token = std::env::var("DISCORD_TOKEN").expect("DISCORD_TOKEN is not set");
let mut client = Client::builder(&token, GatewayIntents::GUILDS)
.event_handler(Handler)
.await
.expect("could not create the client");
if let Err(why) = client.start().await {
println!("Client error: {why:?}");
}
}
Token pochodzi z DISCORD_TOKEN. Wypisanie Logged in as zmienia znacznik na stronie Przegląd na Online na Discordzie. Boty poise i twilight działają tak samo: zbuduj, prześlij, uruchom.
3. Zmień typ na Rust Bot
Na stronie Bot, w sekcji Kod, kliknij Zmień to, co działa obok Runtime i wybierz Rust Bot. Na komputerze to samo okno otwiera etykieta typu u góry strony (na przykład Node.js Bot). Zobacz Jak przełączyć bota na inny język.
4. Umieść program na serwerze
Prześlij go: zmień nazwę swojego programu na bot (albo ustaw Plik startowy na jego nazwę), a potem w Files kliknij Prześlij i wybierz go. Prześlij obok niego pliki, które odczytuje. Serwer nadaje mu uprawnienia do uruchamiania przy starcie.
Albo niech serwer go pobierze: na stronie Bot, w sekcji Kod, na karcie Ustawienia, ustaw Link do pobrania (opcjonalnie) na link https do gotowego programu, na przykład plik wydania z GitHub, i kliknij Zapisz. Przy starcie, gdy brakuje pliku programu, serwer go pobiera (do 500 MB). Żeby zaktualizować, opublikuj nowy build pod tym linkiem, usuń program w Files i naciśnij Uruchom. Gdy link jest ustawiony, Uruchom bota na karcie konfiguracji działa, zanim plik istnieje: pobieranie odbywa się w ramach startu.

5. Sprawdź ustawienia i uruchom
- Plik startowy (karta Jak działa): nazwa programu i folder, domyślnie
bot. - Argumenty startowe (opcjonalnie) (karta Ustawienia): dodatkowe argumenty dla twojego programu. Znaki powłoki, takie jak
$,;,&i>, są niedozwolone.
Wklej token w sekcji Discord, kliknij Połącz, a potem naciśnij Uruchom. Konsola pokazuje [PlayNHost] Starting your bot, a potem wyjście twojego programu.
Linie konsoli, które możesz zobaczyć
| Linia | Co zrobić |
|---|---|
[PlayNHost] Your bot is not set up yet: the program bot was not found. | Prześlij program albo ustaw Plik startowy na jego dokładną nazwę i folder. |
[PlayNHost] bot is not a Linux program. Build it for Linux x86-64 (not Windows or macOS) and upload it again. | Zbuduj ponownie dla x86_64-unknown-linux-musl. |
[PlayNHost] Downloading your program, a potem [PlayNHost] The download failed. Check the download link on the Bot page, Code, Settings, then press Start. | Link jest błędny, prywatny albo nie jest https. Sprawdź Link do pobrania (opcjonalnie) w sekcji Kod, w Ustawienia. |
DISCORD_TOKEN is not set (z przykładu) | Wklej token w sekcji Discord, a potem zrestartuj. |
Boty w Rust nie mają źródła Git ani pola Pakiety: twoje crate'y są w środku programu. Klucze i hasła trafiają do Środowisko i są odczytywane przez std::env::var: Jak ustawić zmienne środowiskowe i sekrety.



