Un bot Go si compila sul tuo computer e si carica come un unico programma Linux già pronto; sul server non viene compilato nulla, quindi tutta la memoria del tuo piano va al bot. Per eseguirne uno:
- Compilalo per Linux x86-64 sul tuo computer.
- Cambia il tipo: nella pagina Bot, sezione Codice, clicca su Cambia cosa viene eseguito accanto a Runtime e scegli Go Bot.
- Carica il programma (chiamato
botin modo predefinito) in Files, oppure imposta Link di download (facoltativo) nella sezione Codice. - Incolla il tuo token nella pagina Bot, sezione Discord, e clicca su Collega.
- Premi Avvia e guarda Console.
1. Compila per Linux
Dalla cartella del tuo progetto, su qualsiasi 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 crea un unico file autonomo che non dipende dalle librerie di sistema del server. Il risultato è un file chiamato bot senza estensione. Un .exe o una build per macOS non gira sul server.
2. Un bot discordgo minimo
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
}
Il token arriva da DISCORD_TOKEN. Quando premi Ferma, il tuo programma riceve un segnale di interruzione, quindi le ultime righe chiudono pulitamente la connessione a Discord. Stampare Logged in as porta il badge nella Panoramica su Online su Discord.
3. Passa il tipo a Go Bot
Nella pagina Bot, sezione Codice, clicca su Cambia cosa viene eseguito accanto a Runtime e scegli Go Bot. Da computer, l'etichetta del tipo in cima alla pagina (per esempio Node.js Bot) apre la stessa finestra. Vedi Come passare il tuo bot a un altro linguaggio.
4. Metti il programma sul server
Caricalo: in Files, clicca su Carica e scegli bot. Carica anche gli eventuali file che legge, accanto a lui. Non serve renderlo eseguibile: lo fa il server all'avvio.
Oppure lascia che lo scarichi il server: nella pagina Bot, sezione Codice, riquadro Impostazioni, imposta Link di download (facoltativo) su un link https al tuo programma già pronto, per esempio un file di una release su GitHub, e clicca su Salva. All'avvio, quando il file del programma manca, il server lo scarica (fino a 500 MB). Per aggiornare, pubblica una nuova build a quel link, elimina il programma in Files e premi Avvia.
Con un link di download impostato, Avvia il bot nel riquadro Configura il tuo bot funziona anche prima che il file esista: il download fa parte dell'avvio.

5. Controlla le impostazioni e avvia
- File di avvio (riquadro Come viene eseguito): il nome e la cartella del programma,
botin modo predefinito, per esempiobin/mybot. - Argomenti di avvio (facoltativo) (riquadro Impostazioni): argomenti aggiuntivi per il tuo programma, come
--debug. I caratteri della shell come$,;,&e>non sono ammessi.
Incolla il tuo token nella sezione Discord, clicca su Collega, poi premi Avvia. La console mostra [PlayNHost] Starting your bot e poi l'output del tuo programma.
Righe della console che puoi vedere
| Riga | Cosa fare |
|---|---|
[PlayNHost] Your bot is not set up yet: the program bot was not found. | Carica il programma, oppure imposta File di avvio sul suo nome e sulla sua cartella esatti. |
[PlayNHost] bot is not a Linux program. Build it for Linux x86-64 (not Windows or macOS) and upload it again. | Compila di nuovo con GOOS=linux GOARCH=amd64. |
[PlayNHost] Downloading your program, poi [PlayNHost] The download failed. Check the download link on the Bot page, Code, Settings, then press Start. | Il link è sbagliato, privato o non https. Controlla Link di download (facoltativo) nella sezione Codice, sotto Impostazioni. |
I bot Go non hanno un'origine Git né un campo Pacchetti: le tue librerie sono dentro il programma. Le chiavi e le password vanno sotto Ambiente, lette con os.Getenv: Come impostare variabili d'ambiente e segreti.



