Un bot Go 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 Go 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
Depuis le dossier de votre projet, sur n’importe quel ordinateur :
# macOS or Linux
GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -o bot
# Windows PowerShell
$env:GOOS="linux"; $env:GOARCH="amd64"; $env:CGO_ENABLED="0"; go build -o bot
CGO_ENABLED=0 produit un fichier autonome qui ne dépend pas des bibliothèques système du serveur. Le résultat est un fichier nommé bot, sans extension. Un .exe ou une compilation pour macOS ne tourne pas sur le serveur.
2. Un bot discordgo minimal
package main
import (
"fmt"
"os"
"os/signal"
"syscall"
"github.com/bwmarrin/discordgo"
)
func main() {
dg, err := discordgo.New("Bot " + os.Getenv("DISCORD_TOKEN"))
if err != nil {
fmt.Println("error creating session:", err)
return
}
dg.Identify.Intents = discordgo.IntentsGuilds
dg.AddHandler(func(s *discordgo.Session, r *discordgo.Ready) {
fmt.Println("Logged in as", r.User.Username)
})
if err := dg.Open(); err != nil {
fmt.Println("error opening connection:", err)
return
}
defer dg.Close()
stop := make(chan os.Signal, 1)
signal.Notify(stop, os.Interrupt, syscall.SIGTERM)
<-stop
}
Le token vient de DISCORD_TOKEN. Quand vous appuyez sur Arrêter, votre programme reçoit un signal d’interruption, et les dernières lignes ferment donc proprement la connexion à Discord. Afficher Logged in as fait passer la pastille de l’Aperçu à En ligne sur Discord.
3. Passer le type à Go Bot
Sur la page Bot, volet Code, cliquez sur Changer ce qui tourne à côté de Runtime et choisissez Go 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 : dans Files, cliquez sur Téléverser et choisissez bot. Téléversez à côté tous les fichiers qu’il lit. Vous n’avez pas besoin de le rendre exécutable : le serveur le fait 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 de téléchargement défini, Démarrer le bot sur la carte Configurer votre bot fonctionne même 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, par exemplebin/mybot. - Arguments de démarrage (facultatif) (carte Paramètres) : des arguments supplémentaires pour votre programme, comme
--debug. 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 avec GOOS=linux GOARCH=amd64. |
[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. |
Les bots Go n’ont ni source Git ni champ Paquets : vos bibliothèques sont dans le programme. Les clés et les mots de passe vont sous Environnement, lus avec os.Getenv : Comment définir des variables d’environnement et des secrets.



