Bir Rust botu kendi bilgisayarınızda derlenir ve bitmiş tek bir Linux programı olarak yüklenir. Sunucuda hiçbir şey derlenmez, bu yüzden paketinizin tüm belleği bota gider. Bir tane çalıştırmak için:
- Bilgisayarınızda Linux x86-64 için derleyin.
- Türü değiştirin: Bot sayfasında, Kod bölümünde, Çalışma ortamı’nın yanındaki Çalışanı değiştir’e tıklayın ve Rust Bot’u seçin.
- Programı (varsayılan adı
bot) Files içine yükleyin ya da Kod bölümünde İndirme bağlantısı (isteğe bağlı) alanını ayarlayın. - Token’ınızı Bot sayfasında, Discord bölümüne yapıştırın ve Bağlan’a tıklayın.
- Başlat’a basın ve Console’u izleyin.
1. Linux için derleyin
rustup target add x86_64-unknown-linux-musl
cargo build --release --target x86_64-unknown-linux-musl
Program, crate’inizin adını taşıyarak target/x86_64-unknown-linux-musl/release/ klasörüne çıkar. musl hedefi, sunucunun sistem kütüphanelerine bağlı olmayan, kendi içinde eksiksiz tek bir dosya üretir. Windows ya da macOS’ta derlemek için bir Linux bağlayıcısı (linker) gerekir. cross ya da cargo-zigbuild gibi araçlar bunu sizin için halleder. Bir .exe ya da macOS derlemesi sunucuda çalışmaz.
2. En küçük serenity botu
Cargo.toml (bağımlılıklar)
[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 DISCORD_TOKEN değişkeninden gelir. Logged in as yazdırmak, Genel bakış sayfasındaki rozeti Discord’da çevrimiçi durumuna çevirir. poise ve twilight botları da aynı şekilde çalışır: derleyin, yükleyin, başlatın.
3. Türü Rust Bot olarak değiştirin
Bot sayfasında, Kod bölümünde, Çalışma ortamı’nın yanındaki Çalışanı değiştir’e tıklayın ve Rust Bot’u seçin. Bilgisayarda, sayfanın üstündeki tür etiketi (örneğin Node.js Bot) aynı pencereyi açar. Bkz. Botunuzu başka bir dile ya da hazır bota nasıl geçirirsiniz.
4. Programı sunucuya koyun
Yükleyin: programınızı bot olarak yeniden adlandırın (ya da Giriş dosyası’nı onun adına ayarlayın), sonra Files içinde Yükle’ye tıklayın ve onu seçin. Onun yanında okuduğu dosyaları da yükleyin. Sunucu onu başlangıçta çalıştırılabilir yapar.
Ya da sunucunun indirmesine izin verin: Bot sayfasında, Kod bölümünde, Ayarlar kartında İndirme bağlantısı (isteğe bağlı) alanını bitmiş programınıza giden bir https bağlantısına, örneğin bir GitHub sürüm dosyasına ayarlayın ve Kaydet’e tıklayın. Bir başlangıçta program dosyası yoksa sunucu onu indirir (en fazla 500 MB). Güncellemek için o bağlantıda yeni bir derleme yayımlayın, programı Files içinde silin ve Başlat’a basın. Bir bağlantı ayarlıysa kurulum kartındaki Botu başlat, dosya henüz yokken bile çalışır: indirme başlangıcın bir parçası olarak yapılır.

5. Ayarları kontrol edin ve başlatın
- Giriş dosyası (Nasıl çalışır kartı): programın adı ve klasörü, varsayılan
bot. - Başlangıç argümanları (isteğe bağlı) (Ayarlar kartı): programınız için ek argümanlar.
$,;,&ve>gibi kabuk karakterlerine izin verilmez.
Token’ınızı Discord bölümüne yapıştırın, Bağlan’a tıklayın, sonra Başlat’a basın. Console [PlayNHost] Starting your bot satırını, ardından programınızın çıktısını gösterir.
Görebileceğiniz console satırları
| Satır | Ne yapmalı |
|---|---|
[PlayNHost] Your bot is not set up yet: the program bot was not found. | Programı yükleyin ya da Giriş dosyası’nı onun tam adına ve klasörüne ayarlayın. |
[PlayNHost] bot is not a Linux program. Build it for Linux x86-64 (not Windows or macOS) and upload it again. | x86_64-unknown-linux-musl için yeniden derleyin. |
[PlayNHost] Downloading your program, sonra [PlayNHost] The download failed. Check the download link on the Bot page, Code, Settings, then press Start. | Bağlantı yanlış, özel ya da https değil. Kod bölümünde, Ayarlar altında İndirme bağlantısı (isteğe bağlı) alanını kontrol edin. |
DISCORD_TOKEN is not set (örnekten) | Token’ı Discord bölümüne yapıştırın, sonra yeniden başlatın. |
Rust botlarında Git kaynağı ve Paketler alanı yoktur: crate’leriniz programın içindedir. Anahtarlar ve şifreler Ortam altına girer ve std::env::var ile okunur: Discord botunuz için ortam değişkenleri ve gizli değerler nasıl ayarlanır.



