Linguaggio Francoforte, Germania

Fai il deploy di Go su Nodion

Nodion riconosce Go da go.mod. Il buildpack Go scarica i tuoi moduli, compila binari statici con la release di Go più recente e avvia il tuo server, mentre la toolchain resta fuori dall'immagine di runtime. L'app gira a Francoforte, accanto a un database PostgreSQL gestito, se ti serve.

Fai il deploy su Nodion ›

da 1 EUR / mese

Fino a 15 € di credito di benvenuto alla registrazione

Riconosciuto da
go.mod
Avvio
Il binario compilato, uno per ogni cmd/<name>
Go
Sempre la release più recente (1.27.x)
Regione
EU Central (Francoforte)

Deploy di Go passo dopo passo

  1. Ascolta su PORT Nodion imposta PORT per il processo web; il tuo server deve ascoltare su quella porta, su tutte le interfacce. r.Run() di Gin senza indirizzo usa già PORT. Con Echo, Fiber o Chi passa tu ":" + port. main.go
    package main
    
    import (
    	"log"
    	"net/http"
    	"os"
    )
    
    func main() {
    	port := os.Getenv("PORT")
    	if port == "" {
    		port = "8080"
    	}
    	http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
    		w.Write([]byte("ok"))
    	})
    	log.Fatal(http.ListenAndServe(":"+port, nil))
    }
  2. Un binario per ogni cartella cmd/ Senza una cartella cmd/, Nodion compila la root del modulo in un unico binario. Se invece ci sono cartelle cmd/<name> con file Go, ognuna diventa un binario a sé e il package nella root non viene compilato. Il processo web avvia l'unico binario, altrimenti quello chiamato server, api, web o app, altrimenti il primo; ogni altro binario diventa un tipo di processo con lo stesso nome.
    cmd/server/main.go
    cmd/worker/main.go
    cmd/migrate/main.go
  3. Controlla le impostazioni di build I binari vengono compilati con CGO_ENABLED=0 e -ldflags "-s -w". Se una dipendenza richiede cgo, come mattn/go-sqlite3, imposta CGO_ENABLED=1 con il flag Build nella scheda Environment. Una variabile Build GOFLAGS_LDFLAGS sostituisce gli ldflags, quindi includi lì -s -w se vuoi mantenerli.
  4. Crea l'app Nella dashboard crea un'applicazione dal tuo repository GitHub, GitLab, Bitbucket o Gitea, scegli il branch e la regione EU Central. Lascia la strategia di build su Buildpacks; se il repository contiene un Dockerfile, il modulo seleziona invece Dockerfile.
  5. Collega PostgreSQL ed esegui le migrazioni Nella scheda Environment collega un database della stessa regione; DATABASE_URL arriva con il deploy successivo e i driver PostgreSQL come pgx lo accettano così com'è. A runtime i tuoi binari sono nel PATH, quindi un binario cmd/migrate può girare come fase di release, una volta per build, prima che parta la nuova versione. Procfile
    release: migrate

Da sapere

  • Worker senza ProcfileUn binario da cmd/worker diventa il tipo di processo worker. Nella scheda Processes aggiungi un processo chiamato worker senza porta e lascia vuoto il comando: avvierà quel binario. Chiama il binario web server, api, web o app, così il processo web non ne sceglie un altro.
  • Sempre il Go più recenteLa riga go in go.mod e un file .go-version non selezionano una toolchain più vecchia: ogni build usa la release di Go più recente compilata da Nodion. Esegui anche la tua CI con il Go più recente.

Cosa gestisce Nodion per te

  • Deploy senza downtime Fai push sul tuo branch e Nodion crea una nuova release. Il traffico passa alle nuove istanze solo quando superano l'health check; una release fallita lascia attiva quella in esecuzione. Le app con un volume locale invece si riavviano, perché il disco appartiene a una sola istanza.
  • Database accanto all'app PostgreSQL, pgvector, MySQL, Valkey e ClickHouse gestiti, nella stessa regione. I database collegati arrivano come DATABASE_URL, REDIS_URL o CLICKHOUSE_URL.
  • Anteprime per ogni pull request Attiva le anteprime: ogni pull request del tuo repository riceve un'app dedicata, con un proprio URL e database nuovi e vuoti, creata automaticamente o manualmente. Le pull request dai fork e quelle dei bot vengono ignorate.
  • Worker, cron job e scalabilità Esegui i worker come processi aggiuntivi della stessa app, pianifica i job nella scheda Cron e scala ogni processo fino a 16 istanze.
  • Fase di release Con i buildpack, la riga release: del Procfile viene eseguita a ogni nuova build. Le app con Dockerfile, così come i redeploy e i rollback a un'immagine precedente, usano un comando di release impostato sull'app stessa, che ha anche la precedenza sulla riga del Procfile. Nei siti statici, la fase di release gira in un'immagine che contiene solo i file generati dalla build.
  • Log e metriche Nella dashboard trovi log di build, release e runtime, oltre alle metriche di CPU, memoria, disco e rete per ogni istanza.
  • Domini e HTTPS Un hostname predefinito con HTTPS dal primo deploy; i tuoi domini ricevono i certificati in automatico.

Per approfondire

Go su Nodion: domande e risposte

Gin, Echo, Fiber e Chi funzionano?

Sì. Nodion compila e avvia il tuo binario, qualunque framework usi; il server deve solo ascoltare su PORT. Se Gin è in go.sum, Nodion imposta anche GIN_MODE=release.

Quale versione di Go usa Nodion?

Sempre la release di Go più recente compilata da Nodion, attualmente la 1.27.x. Le versioni di Go più vecchie non vengono usate per le build, anche se go.mod ne indica una.

Mi serve un Dockerfile per Go?

No. Il buildpack Go compila i tuoi binari e li mette nell'immagine di runtime senza la toolchain di Go. Se hai già un Dockerfile, Nodion può usare quello per la build.

Dove gira la mia app Go?

Nella regione EU Central a Francoforte, in Germania. La build, il registry, l'app e i suoi database, volumi, bucket, log e metriche restano in quella regione. L'API e il control plane di Nodion sono ospitati in Germania. Nodion GmbH ha sede a Stoccarda.

Posso usare Go in modo conforme al GDPR?

Nodion offre le basi per farlo: Nodion GmbH ha sede a Stoccarda, in Germania; nella regione di Francoforte l'app, i suoi database e i volumi girano in Germania; puoi sottoscrivere il DPA (accordo sul trattamento dei dati, art. 28 GDPR) in formato elettronico nella dashboard. La conformità del tuo utilizzo dipende anche da come configuri e usi l'app.

Quanto costa l'hosting di Go su Nodion?

Un'istanza dell'app costa da 1 EUR al mese. La configurazione mostrata nel riquadro costa 2.50 EUR al mese: App 1 EUR, PostgreSQL 1.50 EUR. I prezzi sono IVA esclusa e la fatturazione è al secondo. Puoi scegliere dimensioni più grandi o più istanze quando ti servono.

Posso usare un mio dominio per la mia app Go?

Sì. Ogni app riceve un hostname predefinito con HTTPS. Aggiungi il tuo dominio nella scheda Domains dell'app; il certificato TLS viene emesso e rinnovato automaticamente.

Dai al tuo agente un cloud tutto suo.

Fino a 15 € di credito quando ti registri.

Continua con GitHub

oppure con l'email

Resta aggiornato.

Novità sul prodotto, niente spam. Puoi annullare l'iscrizione quando vuoi.