Um bot em Rust é compilado no seu próprio computador e enviado como um único programa Linux pronto; nada é compilado no servidor, então toda a memória do seu plano vai para o bot. Para rodar um:
- Compile-o para Linux x86-64 no seu computador.
- Mude o tipo: na página Bot, seção Código, clique em Mudar o que roda ao lado de Runtime e escolha Rust Bot.
- Envie o programa (chamado
botpor padrão) em Files, ou defina o Link de download (opcional) na seção Código. - Cole o seu token na página Bot, seção Discord, e clique em Conectar.
- Clique em Iniciar e acompanhe o Console.
1. Compile para Linux
rustup target add x86_64-unknown-linux-musl
cargo build --release --target x86_64-unknown-linux-musl
O programa fica em target/x86_64-unknown-linux-musl/release/, com o nome do seu crate. O target musl gera um arquivo único e independente, que não depende das bibliotecas do sistema do servidor. Compilar no Windows ou no macOS exige um linker para Linux; ferramentas como cross ou cargo-zigbuild cuidam disso para você. Um .exe ou um build para macOS não roda no servidor.
2. Um bot serenity mínimo
Cargo.toml (dependências)
[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:?}");
}
}
O token vem de DISCORD_TOKEN. Imprimir Logged in as muda o chip em Visão geral para Online no Discord. Os bots em poise e twilight funcionam do mesmo jeito: compile, envie, inicie.
3. Mude o tipo para Rust Bot
Na página Bot, seção Código, clique em Mudar o que roda ao lado de Runtime e escolha Rust Bot. Em um computador, o rótulo do tipo no topo da página (por exemplo Node.js Bot) abre a mesma janela. Veja Como mudar seu bot para outra linguagem ou para um bot pronto.
4. Coloque o programa no servidor
Envie-o: renomeie o seu programa para bot (ou defina em Arquivo de entrada o nome dele), depois, em Files, clique em Enviar e escolha o arquivo. Envie ao lado dele os arquivos que ele lê. O servidor o torna executável ao iniciar.
Ou deixe o servidor baixá-lo: na página Bot, seção Código, card Configurações, defina o Link de download (opcional) com um link https para o seu programa pronto, por exemplo um arquivo de release do GitHub, e clique em Salvar. Em um início, quando o arquivo do programa não existe, o servidor o baixa (até 500 MB). Para atualizar, publique um novo build nesse link, exclua o programa em Files e clique em Iniciar. Com um link definido, Iniciar bot no card de configuração funciona antes de o arquivo existir: o download roda como parte do início.

5. Confira as configurações e inicie
- Arquivo de entrada (card Como ele roda): o nome e a pasta do programa,
botpor padrão. - Argumentos de início (opcional) (card Configurações): argumentos extras para o seu programa. Caracteres de shell como
$,;,&e>não são permitidos.
Cole o seu token na seção Discord, clique em Conectar e depois em Iniciar. O console mostra [PlayNHost] Starting your bot e depois a saída do seu programa.
Linhas de console que você pode ver
| Linha | O que fazer |
|---|---|
[PlayNHost] Your bot is not set up yet: the program bot was not found. | Envie o programa ou coloque em Arquivo de entrada o nome e a pasta exatos dele. |
[PlayNHost] bot is not a Linux program. Build it for Linux x86-64 (not Windows or macOS) and upload it again. | Compile de novo para x86_64-unknown-linux-musl. |
[PlayNHost] Downloading your program, e depois [PlayNHost] The download failed. Check the download link on the Bot page, Code, Settings, then press Start. | O link está errado, é privado ou não é https. Confira o Link de download (opcional) na seção Código, em Configurações. |
DISCORD_TOKEN is not set (do exemplo) | Cole o token na seção Discord e reinicie. |
Bots em Rust não têm origem Git nem campo Pacotes: seus crates estão dentro do programa. Chaves e senhas vão em Ambiente, e são lidas com std::env::var: Como definir variáveis de ambiente e segredos para o seu bot do Discord.



