Sprache Frankfurt, Deutschland

Go auf Nodion deployen

Nodion erkennt Go an der go.mod. Das Go-Buildpack lädt deine Module, baut statische Binaries mit dem neuesten Go-Release und startet deinen Server; die Toolchain kommt nicht ins Run-Image. Die App läuft in Frankfurt, auf Wunsch neben einer Managed PostgreSQL-Datenbank.

Auf Nodion deployen ›

ab 1 EUR / Monat

Bis zu 15 € Guthaben beim Registrieren

Erkannt an
go.mod
Start
Das gebaute Binary, eins pro cmd/<name>
Go
Immer das neueste Release (1.27.x)
Region
EU Central (Frankfurt)

Go Schritt für Schritt deployen

  1. Auf PORT lauschen Nodion setzt PORT für den Web-Prozess; dein Server lauscht darauf auf allen Interfaces. r.Run() von Gin ohne Adresse nutzt PORT schon von selbst. Bei Echo, Fiber oder Chi übergibst du ":" + port selbst. 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. Ein Binary pro cmd/-Ordner Ohne cmd/-Ordner baut Nodion den Root des Moduls zu einem Binary. Jeder cmd/<name>-Ordner mit Go-Dateien wird stattdessen ein eigenes Binary, das Root-Paket wird dann nicht gebaut. Der Web-Prozess startet das einzige Binary, sonst das mit dem Namen server, api, web oder app, sonst das erste; jedes weitere Binary wird ein Prozesstyp mit demselben Namen.
    cmd/server/main.go
    cmd/worker/main.go
    cmd/migrate/main.go
  3. Build-Einstellungen prüfen Binaries entstehen mit CGO_ENABLED=0 und -ldflags "-s -w". Braucht eine Dependency cgo, etwa mattn/go-sqlite3, setz auf dem Tab Environment CGO_ENABLED=1 mit dem Häkchen Build. Eine Build-Variable GOFLAGS_LDFLAGS ersetzt die ldflags; nimm -s -w dort mit auf, wenn du sie behalten willst.
  4. App anlegen Lege im Dashboard eine Application aus deinem GitHub-, GitLab-, Bitbucket- oder Gitea-Repository an, wähle Branch und Region EU Central. Lass die Build-Strategie auf Buildpacks; liegt ein Dockerfile im Repository, wählt das Formular stattdessen Dockerfile.
  5. PostgreSQL anhängen und Migrationen ausführen Häng auf dem Tab Environment eine Datenbank aus derselben Region an; DATABASE_URL kommt beim nächsten Deploy an, und PostgreSQL-Treiber wie pgx nehmen die URL so, wie sie ist. Deine Binaries liegen zur Laufzeit im PATH, ein cmd/migrate-Binary kann also als Release-Schritt laufen, bei jedem Build einmal, bevor die neue Version startet. Procfile
    release: migrate

Gut zu wissen

  • Worker ohne ProcfileEin Binary aus cmd/worker wird zum Prozesstyp worker. Leg auf dem Tab Processes einen Prozess worker ohne Port an und lass den Befehl leer; er startet dieses Binary. Nenn das Web-Binary server, api, web oder app, damit der Web-Prozess kein anderes erwischt.
  • Immer das neueste GoDie go-Zeile in der go.mod und eine .go-version wählen keine ältere Toolchain: Jeder Build nutzt das neueste Go-Release, das Nodion gebaut hat. Lass deine CI ebenfalls gegen das neueste Go laufen.

Was Nodion für dich betreibt

  • Deploys ohne Downtime Push auf deinen Branch und Nodion baut ein neues Release. Der Traffic wechselt erst, wenn die neuen Instanzen ihren Health Check bestehen; ein fehlgeschlagenes Release lässt das laufende stehen. Apps mit lokalem Volume starten stattdessen neu, weil die Disk zu einer Instanz gehört.
  • Datenbanken neben der App Managed PostgreSQL, pgvector, MySQL, Valkey und ClickHouse in derselben Region. Angehängte Datenbanken kommen als DATABASE_URL, REDIS_URL oder CLICKHOUSE_URL in die App.
  • Previews pro Pull Request Schalte Previews ein, und Pull Requests aus deinem Repository bekommen eine eigene App mit eigener URL und frischen, leeren Datenbanken, automatisch oder per Hand angelegt. Forks und Bot-Pull-Requests werden übersprungen.
  • Worker, Cron Jobs und Skalierung Worker laufen als weitere Prozesse derselben App, Jobs planst du auf dem Tab Cron, und jeden Prozess skalierst du auf bis zu 16 Instanzen.
  • Release-Schritt Mit Buildpacks läuft eine release:-Zeile in der Procfile bei jedem neuen Build. Dockerfile-Apps sowie Redeploys und Rollbacks auf ein früheres Image nutzen einen Release Command, der an der App selbst gesetzt ist; er hat auch Vorrang vor der Procfile-Zeile. Bei statischen Sites läuft ein Release-Schritt in einem Image, das nur die gebauten Dateien enthält.
  • Logs und Metriken Build-, Release- und Laufzeit-Logs sowie CPU-, Speicher-, Disk- und Netzwerk-Metriken für jede Instanz im Dashboard.
  • Domains und HTTPS Ein Default-Hostname mit HTTPS ab dem ersten Deploy; deine eigenen Domains bekommen automatisch Zertifikate.

Weiterlesen

Go auf Nodion: Fragen und Antworten

Funktionieren Gin, Echo, Fiber und Chi?

Ja. Nodion baut und startet dein Binary, egal mit welchem Framework; der Server muss nur auf PORT lauschen. Steht Gin in der go.sum, setzt Nodion zusätzlich GIN_MODE=release.

Welche Go-Version nutzt Nodion?

Immer das neueste Go-Release, das Nodion gebaut hat, derzeit 1.27.x. Ältere Go-Versionen nutzt der Build nicht, auch wenn die go.mod eine nennt.

Brauche ich ein Dockerfile für Go?

Nein. Das Go-Buildpack kompiliert deine Binaries und legt sie ohne Go-Toolchain ins Run-Image. Hast du schon ein Dockerfile, kann Nodion stattdessen das bauen.

Wo läuft meine Go-App?

In der Region EU Central in Frankfurt. Build, Registry, die App und ihre Datenbanken, Volumes, Buckets, Logs und Metriken bleiben in dieser Region, API und Control Plane von Nodion werden in Deutschland gehostet. Die Nodion GmbH hat ihren Sitz in Stuttgart.

Kann ich Go DSGVO-konform betreiben?

Nodion schafft die Voraussetzungen dafür: Die Nodion GmbH hat ihren Sitz in Stuttgart, in der Region Frankfurt laufen App, Datenbanken und Volumes in Deutschland, und den Auftragsverarbeitungsvertrag (AVV) nach Art. 28 DSGVO schließt du im Dashboard elektronisch ab. Ob dein Einsatz DSGVO-konform ist, hängt auch davon ab, wie du die App konfigurierst und nutzt.

Was kostet Go-Hosting auf Nodion?

Eine App-Instanz gibt es ab 1 EUR im Monat. Das Setup im Kostenkasten kostet 2.50 EUR im Monat: App 1 EUR, PostgreSQL 1.50 EUR. Preise sind netto, Abrechnung pro Sekunde, größere Varianten oder mehr Instanzen wählst du jederzeit.

Kann ich eine eigene Domain für meine Go-App nutzen?

Ja. Jede App bekommt einen Default-Hostnamen mit HTTPS. Deine eigene Domain nimmst du auf dem Tab Domains dazu, das TLS-Zertifikat wird automatisch ausgestellt und erneuert.

Gibt es Support auf Deutsch?

Ja. Nodion ist ein deutsches Unternehmen mit Sitz in Stuttgart, der Support antwortet auf Deutsch und auf Englisch.

Gib deinem Agenten eine Cloud.

Bis zu 15 € Guthaben beim Registrieren.

Weiter mit GitHub

oder per E-Mail

Bleib auf dem Laufenden.

Produktnews, kein Spam. Jederzeit abbestellen.