Een Go-bot bouw je op je eigen computer en upload je als één afgewerkt Linux-programma. Er wordt niets op de server gecompileerd, dus al het geheugen van je pakket gaat naar de bot. Zo draai je er een:
- Bouw hem voor Linux x86-64 op je computer.
- Wissel het type: klik op de pagina Bot, deel Code, naast Runtime op Wijzigen wat er draait en kies Go Bot.
- Upload het programma (standaard
botgenoemd) in Files, of vul Downloadlink (optioneel) in het deel Code in. - Plak je token op de pagina Bot, deel Discord, en klik op Verbinden.
- Druk op Starten en volg Console.
1. Bouw voor Linux
Vanuit je projectmap, op elke computer:
# 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 maakt één op zichzelf staand bestand dat niet afhangt van de systeembibliotheken van de server. Het resultaat is een bestand met de naam bot zonder extensie. Een .exe of een macOS-build draait niet op de server.
2. Een minimale discordgo-bot
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
}
Het token komt uit DISCORD_TOKEN. Als je op Stoppen drukt, krijgt je programma een onderbrekingssignaal, dus de laatste regels sluiten de Discord-verbinding netjes af. Door Logged in as te printen verandert het statuslabel op Overzicht in Online in Discord.
3. Wissel het type naar Go Bot
Klik op de pagina Bot, deel Code, naast Runtime op Wijzigen wat er draait en kies Go Bot. Op een computer opent het typelabel bovenaan de pagina (bijvoorbeeld Node.js Bot) hetzelfde venster. Zie Je bot naar een andere taal of een kant-en-klare bot overzetten.
4. Zet het programma op de server
Upload het: klik in Files op Uploaden en kies bot. Upload ook de bestanden die het ernaast leest. Je hoeft het niet uitvoerbaar te maken: de server doet dat bij het starten.
Of laat de server het downloaden: zet op de pagina Bot, deel Code, kaart Instellingen, Downloadlink (optioneel) op een https-link naar je afgewerkte programma, bijvoorbeeld een releasebestand op GitHub, en klik op Opslaan. Bij een start downloadt de server het programmabestand als het ontbreekt (tot 500 MB). Om bij te werken publiceer je een nieuwe build op die link, verwijder je het programma in Files en druk je op Starten.
Met een downloadlink werkt Bot starten in de kaart Je bot instellen ook voordat het bestand bestaat: de download hoort bij de start.

5. Controleer de instellingen en start
- Startbestand (kaart Hoe hij draait): de naam en map van het programma, standaard
bot, bijvoorbeeldbin/mybot. - Startargumenten (optioneel) (kaart Instellingen): extra argumenten voor je programma, zoals
--debug. Shelltekens zoals$,;,&en>zijn niet toegestaan.
Plak je token in het deel Discord, klik op Verbinden en druk dan op Starten. De console toont [PlayNHost] Starting your bot en daarna de uitvoer van je programma.
Consoleregels die je kunt zien
| Regel | Wat je doet |
|---|---|
[PlayNHost] Your bot is not set up yet: the program bot was not found. | Upload het programma, of zet Startbestand op de exacte naam en map. |
[PlayNHost] bot is not a Linux program. Build it for Linux x86-64 (not Windows or macOS) and upload it again. | Bouw opnieuw met GOOS=linux GOARCH=amd64. |
[PlayNHost] Downloading your program, daarna [PlayNHost] The download failed. Check the download link on the Bot page, Code, Settings, then press Start. | De link is fout, privé of niet https. Controleer Downloadlink (optioneel) in het deel Code, onder Instellingen. |
Go-bots hebben geen Git-bron en geen veld Packages: je libraries zitten in het programma. Sleutels en wachtwoorden horen onder Omgeving en je leest ze met os.Getenv: Omgevingsvariabelen en geheimen instellen voor je Discord-bot.



