Ein Go-Bot wird auf deinem eigenen Computer gebaut und als ein fertiges Linux-Programm hochgeladen. Auf dem Server wird nichts kompiliert, der gesamte Arbeitsspeicher deines Tarifs geht also an den Bot. So betreibst du einen:
- Bau ihn auf deinem Computer für Linux x86-64.
- Wechsle den Typ: Klick auf der Bot-Seite im Bereich Code neben Laufzeitumgebung auf Ändern, was läuft und wähl Go Bot.
- Lad das Programm (standardmäßig
botgenannt) in Files hoch, oder setz Download-Link (optional) im Bereich Code. - Füg deinen Token auf der Bot-Seite im Bereich Discord ein und klick auf Verbinden.
- Drück auf Starten und beobachte die Console.
1. Für Linux bauen
Aus deinem Projektordner, auf jedem 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 erzeugt eine einzige eigenständige Datei, die nicht von den Systembibliotheken des Servers abhängt. Das Ergebnis ist eine Datei namens bot ohne Endung. Eine .exe oder ein macOS-Build läuft auf dem Server nicht.
2. Ein minimaler 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
}
Der Token kommt aus DISCORD_TOKEN. Wenn du auf Stoppen drückst, bekommt dein Programm ein Interrupt-Signal, deshalb schließen die letzten Zeilen die Discord-Verbindung sauber. Die Ausgabe von Logged in as stellt das Label auf der Übersicht auf Online in Discord.
3. Den Typ auf Go Bot wechseln
Klick auf der Bot-Seite im Bereich Code neben Laufzeitumgebung auf Ändern, was läuft und wähl Go Bot. Am Computer öffnet die Typbezeichnung oben auf der Seite (zum Beispiel Node.js Bot) denselben Dialog. Lies dazu So wechselst du mit deinem Bot zu einer anderen Sprache oder einem fertigen Bot.
4. Das Programm auf den Server bringen
Hochladen: Klick in Files auf Hochladen und wähl bot. Lad alle Dateien, die es liest, daneben hoch. Du musst es nicht ausführbar machen: Das erledigt der Server beim Start.
Oder den Server herunterladen lassen: Setz auf der Bot-Seite im Bereich Code, Karte Einstellungen, Download-Link (optional) auf einen https-Link zu deinem fertigen Programm, zum Beispiel eine GitHub-Release-Datei, und klick auf Speichern. Bei einem Start lädt der Server das Programm herunter (bis zu 500 MB), wenn die Programmdatei fehlt. Zum Aktualisieren veröffentliche einen neuen Build unter diesem Link, lösch das Programm in Files und drück auf Starten.
Ist ein Download-Link gesetzt, funktioniert Bot starten in der Karte Deinen Bot einrichten schon, bevor die Datei existiert: Der Download läuft als Teil des Starts.

5. Die Einstellungen prüfen und starten
- Startdatei (Karte So läuft er): Name und Ordner des Programms, standardmäßig
bot, zum Beispielbin/mybot. - Startargumente (optional) (Karte Einstellungen): zusätzliche Argumente für dein Programm, etwa
--debug. Shell-Zeichen wie$,;,&und>sind nicht erlaubt.
Füg deinen Token im Bereich Discord ein, klick auf Verbinden und drück dann auf Starten. Die Console zeigt [PlayNHost] Starting your bot und dann die Ausgabe deines Programms.
Console-Zeilen, die du sehen kannst
| Zeile | Was du tun kannst |
|---|---|
[PlayNHost] Your bot is not set up yet: the program bot was not found. | Lad das Programm hoch, oder trag bei Startdatei seinen genauen Namen und Ordner ein. |
[PlayNHost] bot is not a Linux program. Build it for Linux x86-64 (not Windows or macOS) and upload it again. | Bau es noch mal mit GOOS=linux GOARCH=amd64. |
[PlayNHost] Downloading your program, dann [PlayNHost] The download failed. Check the download link on the Bot page, Code, Settings, then press Start. | Der Link ist falsch, privat oder nicht https. Prüf Download-Link (optional) im Bereich Code, unter Einstellungen. |
Go-Bots haben keine Git-Quelle und kein Feld Pakete: Deine Bibliotheken stecken im Programm. Schlüssel und Passwörter gehören unter Umgebung und werden mit os.Getenv gelesen: Umgebungsvariablen und Secrets für deinen Discord-Bot setzen.



