Langage Francfort, Allemagne

Déployez Go sur Nodion

Nodion reconnaît Go à son go.mod. Le buildpack Go télécharge vos modules, compile des binaires statiques avec la release de Go la plus récente et lance votre serveur, tandis que la chaîne d'outils reste hors de l'image d'exécution. L'app tourne à Francfort, à côté d'une base de données PostgreSQL managée si vous en avez besoin.

Déployer sur Nodion ›

à partir de 1 EUR / mois

Jusqu'à 15 € de crédit de bienvenue à l'inscription

Détecté via
go.mod
Démarrage
Le binaire compilé, un par cmd/<name>
Go
Toujours la release la plus récente (1.27.x)
Région
EU Central (Francfort)

Déployez Go étape par étape

  1. Écoutez sur PORT Nodion définit la variable PORT pour le processus web ; écoutez sur ce port, sur toutes les interfaces. r.Run() de Gin sans adresse utilise déjà PORT. Avec Echo, Fiber ou Chi, passez vous-même ":" + 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 binaire par dossier cmd/ Sans dossier cmd/, Nodion compile la racine du module en un seul binaire. Sinon, chaque cmd/<name> contenant des fichiers Go devient son propre binaire, et le package racine n'est alors pas compilé. Le processus web lance le binaire unique, sinon celui nommé server, api, web ou app, sinon le premier ; chaque autre binaire devient un type de processus du même nom.
    cmd/server/main.go
    cmd/worker/main.go
    cmd/migrate/main.go
  3. Vérifiez les réglages de build Les binaires sont compilés avec CGO_ENABLED=0 et -ldflags "-s -w". Si une dépendance a besoin de cgo, comme mattn/go-sqlite3, définissez CGO_ENABLED=1 dans l'onglet Environment en cochant Build. Une variable Build GOFLAGS_LDFLAGS remplace les ldflags : incluez-y -s -w si vous voulez les conserver.
  4. Créez l'app Dans le dashboard, créez une application depuis votre dépôt GitHub, GitLab, Bitbucket ou Gitea, puis choisissez la branche et la région EU Central. Laissez la stratégie de build sur Buildpacks ; si le dépôt contient un Dockerfile, le formulaire choisit Dockerfile à la place.
  5. Rattachez PostgreSQL et lancez les migrations Rattachez une base de données de la même région dans l'onglet Environment ; DATABASE_URL arrive au prochain déploiement, et les pilotes PostgreSQL comme pgx l'acceptent telle quelle. Au runtime, vos binaires sont dans le PATH : un binaire cmd/migrate peut donc tourner comme étape de release, une fois par build, avant le démarrage de la nouvelle version. Procfile
    release: migrate

Bon à savoir

  • Workers sans ProcfileUn binaire issu de cmd/worker devient le type de processus worker. Ajoutez un processus nommé worker sans port dans l'onglet Processes et laissez sa commande vide : il lance ce binaire. Nommez le binaire web server, api, web ou app pour que le processus web n'en choisisse pas un autre.
  • Toujours le Go le plus récentLa ligne go de go.mod et un fichier .go-version ne sélectionnent pas une chaîne d'outils plus ancienne : chaque build utilise la version de Go la plus récente préparée par Nodion. Faites aussi tourner votre CI avec le Go le plus récent.

Ce que Nodion gère pour vous

  • Déploiements sans interruption Faites un push sur votre branche : Nodion construit une nouvelle release. Le trafic bascule lorsque les nouvelles instances réussissent leur health check ; si la release échoue, celle en cours reste active. Les apps avec un volume local redémarrent, car le disque appartient à une seule instance.
  • Bases de données à côté de l'app PostgreSQL, pgvector, MySQL, Valkey et ClickHouse managés, dans la même région. Les bases de données rattachées arrivent sous forme de DATABASE_URL, REDIS_URL ou CLICKHOUSE_URL.
  • Previews par pull request Activez les previews, et les pull requests de votre dépôt obtiennent leur propre app, avec sa propre URL et des bases de données neuves et vides, créées automatiquement ou à la main. Les pull requests issues de forks ou de bots sont ignorées.
  • Workers, cron jobs et mise à l'échelle Exécutez les workers comme processus supplémentaires de la même app, planifiez des tâches dans l'onglet Cron et mettez chaque processus à l'échelle jusqu'à 16 instances.
  • Étape de release Avec les buildpacks, une ligne release: du Procfile s'exécute à chaque nouveau build. Les apps Dockerfile, ainsi que les redéploiements ou les rollbacks vers une image antérieure, utilisent une commande de release définie sur l'app elle-même, qui prime aussi sur la ligne du Procfile. Sur les sites statiques, l'étape de release s'exécute dans une image qui ne contient que les fichiers générés par le build.
  • Logs et métriques Logs de build, de release et d'exécution, ainsi que les métriques CPU, mémoire, disque et réseau de chaque instance, dans le dashboard.
  • Domaines et HTTPS Un nom d'hôte par défaut avec HTTPS dès le premier déploiement, et des certificats automatiques pour vos propres domaines.

Pour aller plus loin

Go sur Nodion : questions et réponses

Gin, Echo, Fiber et Chi fonctionnent-ils ?

Oui. Nodion compile et lance votre binaire, quel que soit le framework utilisé ; le serveur doit seulement écouter sur PORT. Si Gin figure dans go.sum, Nodion définit aussi GIN_MODE=release.

Quelle version de Go Nodion utilise-t-il ?

Toujours la version de Go la plus récente préparée par Nodion, actuellement la 1.27.x. Les versions plus anciennes de Go ne sont pas utilisées pour les builds, même si go.mod en indique une.

Ai-je besoin d'un Dockerfile pour Go ?

Non. Le buildpack Go compile vos binaires et les place dans l'image d'exécution sans la chaîne d'outils Go. Si vous avez déjà un Dockerfile, Nodion peut l'utiliser pour le build à la place.

Où tourne mon app Go ?

Dans la région EU Central, à Francfort (Allemagne). Le build, le registry, l'app et ses bases de données, volumes, buckets, logs et métriques restent dans cette région. L'API et le plan de contrôle de Nodion sont hébergés en Allemagne. Nodion GmbH a son siège à Stuttgart.

Puis-je utiliser Go en conformité avec le RGPD ?

Nodion en pose les bases : Nodion GmbH a son siège à Stuttgart (Allemagne). Dans la région de Francfort, l'app, ses bases de données et ses volumes fonctionnent en Allemagne. Vous concluez le DPA (accord de traitement des données, art. 28 RGPD) par voie électronique dans le dashboard. La conformité de votre déploiement dépend aussi de la façon dont vous configurez et utilisez l'app.

Combien coûte l'hébergement Go sur Nodion ?

Une instance d'app coûte à partir de 1 EUR par mois. La configuration présentée dans l'encadré des coûts revient à 2.50 EUR par mois : App 1 EUR, PostgreSQL 1.50 EUR. Les prix sont HT, avec une facturation à la seconde. Vous pouvez choisir des tailles plus grandes ou davantage d'instances dès que vous en avez besoin.

Puis-je utiliser mon propre domaine pour mon app Go ?

Oui. Chaque app reçoit un nom d'hôte par défaut avec HTTPS. Ajoutez votre propre domaine dans l'onglet Domains de l'app. Le certificat TLS est émis et renouvelé automatiquement.

Offrez un cloud à votre agent.

Jusqu'à 15 € de crédit de bienvenue à l'inscription.

Continuer avec GitHub

ou par e-mail

Restez informé.

Les nouveautés du produit, sans spam. Désabonnez-vous à tout moment.