Un bot Rust se compile sur votre propre ordinateur et se téléverse sous la forme d’un programme Linux fini ; rien n’est compilé sur le serveur, donc toute la mémoire de votre offre va au bot. Pour en lancer un :
- Compilez-le pour Linux x86-64 sur votre ordinateur.
- Changez le type : sur la page Bot, volet Code, cliquez sur Changer ce qui tourne à côté de Runtime et choisissez Rust Bot.
- Téléversez le programme (nommé
botpar défaut) dans Files, ou renseignez Lien de téléchargement (facultatif) dans le volet Code. - Collez votre token sur la page Bot, volet Discord, et cliquez sur Connecter.
- Appuyez sur Démarrer et suivez Console.
1. Compiler pour Linux
rustup target add x86_64-unknown-linux-musl
cargo build --release --target x86_64-unknown-linux-musl
Le programme arrive dans target/x86_64-unknown-linux-musl/release/, avec le nom de votre crate. La cible musl produit un fichier autonome qui ne dépend pas des bibliothèques système du serveur. Compiler sous Windows ou macOS demande un éditeur de liens Linux ; des outils comme cross ou cargo-zigbuild s’en chargent pour vous. Un .exe ou une compilation pour macOS ne tourne pas sur le serveur.
2. Un bot serenity minimal
Cargo.toml (dépendances)
[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:?}");
}
}
Le token vient de DISCORD_TOKEN. Afficher Logged in as fait passer la pastille de l’Aperçu à En ligne sur Discord. Les bots poise et twilight fonctionnent de la même façon : compiler, téléverser, démarrer.
3. Passer le type à Rust Bot
Sur la page Bot, volet Code, cliquez sur Changer ce qui tourne à côté de Runtime et choisissez Rust Bot. Sur ordinateur, l’étiquette du type en haut de la page (par exemple Node.js Bot) ouvre la même fenêtre. Voir Comment faire passer votre bot à un autre langage.
4. Mettre le programme sur le serveur
Le téléverser : renommez votre programme en bot (ou mettez son nom dans Fichier d’entrée), puis dans Files cliquez sur Téléverser et choisissez-le. Téléversez à côté tous les fichiers qu’il lit. Le serveur le rend exécutable au démarrage.
Ou laisser le serveur le télécharger : sur la page Bot, volet Code, carte Paramètres, mettez dans Lien de téléchargement (facultatif) un lien https vers votre programme fini, par exemple un fichier de release GitHub, et cliquez sur Enregistrer. Au démarrage, quand le fichier du programme est absent, le serveur le télécharge (jusqu’à 500 MB). Pour mettre à jour, publiez une nouvelle compilation à ce lien, supprimez le programme dans Files et appuyez sur Démarrer. Avec un lien défini, Démarrer le bot sur la carte de configuration fonctionne avant que le fichier existe : le téléchargement fait partie du démarrage.

5. Vérifier les paramètres et démarrer
- Fichier d’entrée (carte Comment il tourne) : le nom et le dossier du programme,
botpar défaut. - Arguments de démarrage (facultatif) (carte Paramètres) : des arguments supplémentaires pour votre programme. Les caractères du shell comme
$,;,&et>ne sont pas autorisés.
Collez votre token dans le volet Discord, cliquez sur Connecter, puis appuyez sur Démarrer. La console affiche [PlayNHost] Starting your bot, puis la sortie de votre programme.
Lignes de console que vous pouvez voir
| Ligne | Que faire |
|---|---|
[PlayNHost] Your bot is not set up yet: the program bot was not found. | Téléversez le programme, ou mettez dans Fichier d’entrée son nom et son dossier exacts. |
[PlayNHost] bot is not a Linux program. Build it for Linux x86-64 (not Windows or macOS) and upload it again. | Compilez de nouveau pour x86_64-unknown-linux-musl. |
[PlayNHost] Downloading your program, puis [PlayNHost] The download failed. Check the download link on the Bot page, Code, Settings, then press Start. | Le lien est faux, privé, ou pas en https. Vérifiez Lien de téléchargement (facultatif) dans le volet Code, sous Paramètres. |
DISCORD_TOKEN is not set (de l’exemple) | Collez le token dans le volet Discord, puis redémarrez. |
Les bots Rust n’ont ni source Git ni champ Paquets : vos crates sont dans le programme. Les clés et les mots de passe vont sous Environnement, lus avec std::env::var : Comment définir des variables d’environnement et des secrets.



