Go
Guia completo para hospedar aplicações Go na Discloud.
📁 Preparando os Arquivos
Antes de fazer upload do seu projeto, você deve excluir arquivos desnecessários para otimizar o deploy.
❌ Arquivos a Excluir
Certifique-se de que os seguintes arquivos e diretórios não sejam incluídos no seu .zip:
- bin/
- *.exe
- .git/📌 Use um arquivo .discloudignore para excluir automaticamente esses arquivos. Não exclua go.mod ou go.sum.
🔗 Precisa de ajuda para configurar seu go.mod ou encontrar o arquivo principal?
🌐 Hospedando Websites & APIs em Go
Antes de fazer deploy do seu website ou API na Discloud, certifique-se de que você atenda aos seguintes requisitos:
Plano Platinum ou superior é necessário para hospedar websites ou APIs.
Um subdomínio deve ser criado antes do deploy.
Porta 8080 é obrigatória – As aplicações devem escutar nesta porta.
package main
import (
"log"
"os"
"os/signal"
"syscall"
"github.com/bwmarrin/discordgo"
)
func main() {
token := os.Getenv("DISCORD_TOKEN")
if token == "" { log.Fatal("DISCORD_TOKEN não definido") }
dg, err := discordgo.New("Bot " + token)
if err != nil { log.Fatal(err) }
dg.AddHandler(func(s *discordgo.Session, r *discordgo.Ready) {
log.Println("Bot está pronto")
})
if err := dg.Open(); err != nil { log.Fatal(err) }
log.Println("Bot executando. Pressione CTRL+C para sair.")
stop := make(chan os.Signal, 1)
signal.Notify(stop, os.Interrupt, syscall.SIGTERM)
<-stop
dg.Close()
}Bots não precisam bindar nenhuma porta HTTP. Eles só precisam manter o processo vivo.
package main
import (
"fmt"
"log"
"net/http"
)
func main() {
mux := http.NewServeMux()
mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
fmt.Fprintln(w, "Olá do Go na Discloud!")
})
log.Println("Iniciando servidor em :8080")
if err := http.ListenAndServe(":8080", mux); err != nil {
log.Fatal(err)
}
}package main
import (
"net/http"
"log"
"github.com/go-chi/chi/v5"
)
func main() {
r := chi.NewRouter()
r.Get("/health", func(w http.ResponseWriter, r *http.Request) { w.Write([]byte("ok")) })
r.Get("/hello/{name}", func(w http.ResponseWriter, r *http.Request) {
name := chi.URLParam(r, "name")
w.Write([]byte("Olá, "+name))
})
log.Println("API em :8080")
log.Fatal(http.ListenAndServe(":8080", r))
}✍️ Fazendo Deploy da Sua Aplicação
Uma vez que seu projeto esteja configurado e comprimido, você pode escolher um dos seguintes métodos de deploy na Discloud:
Last updated