NOUVEAU 📢 Offre de lancement limitée : jusqu'à 70 % de remise sur votre premier mois, pour tous les jeux !Voir les offres

Comment héberger un bot Discord Rust

Hébergement de bots DiscordUpdated Oct 29, 20265 min read

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 :

  1. Compilez-le pour Linux x86-64 sur votre ordinateur.
  2. Changez le type : sur la page Bot, volet Code, cliquez sur Changer ce qui tourne à côté de Runtime et choisissez Rust Bot.
  3. Téléversez le programme (nommé bot par défaut) dans Files, ou renseignez Lien de téléchargement (facultatif) dans le volet Code.
  4. Collez votre token sur la page Bot, volet Discord, et cliquez sur Connecter.
  5. 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.

Le volet Code d’un bot Go avec la carte Comment il tourne et la carte Paramètres qui liste Arguments de démarrage et Lien de téléchargement.

5. Vérifier les paramètres et démarrer

  • Fichier d’entrée (carte Comment il tourne) : le nom et le dossier du programme, bot par 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

LigneQue 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.

Votre bot est hébergé ailleurs ? Transférez-le chez nous

NOS DERNIERS ARTICLES