Gin (Go)

Gin fonctionne sur Kavio sans aucune configuration particulière. Un module Go standard (go.mod à la racine) suffit à la détection.

Le port n'est pas injecté automatiquement

Railpack construit avec go build -ldflags="-w -s" -o out et démarre avec ./out — aucune variable système ni injection de port, à lire vous-même via os.Getenv("PORT") :

port := os.Getenv("PORT")
if port == "" {
    port = "8080"
}
router.Run("0.0.0.0:" + port)

C'est la convention Go standard, pas une contrainte propre à Kavio.

Choisir sa version de Go

Sans rien préciser, Railpack lit la directive go 1.XX de votre go.mod — rien à faire tant que ce fichier est à jour. Pour forcer une version différente, la variable RAILPACK_GO_VERSION existe (voir la page Spring Boot pour le rappel du préfixe RAILPACK_ obligatoire sur toute variable de configuration Railpack).

CGO_ENABLED fait exception au préfixe RAILPACK_

C'est la seule variable de configuration Go lue par son nom brut, sans le préfixe RAILPACK_ habituel. CGO_ENABLED=1 fonctionne donc tel quel côté Kavio — utile si vous dépendez d'un pilote cgo (un driver SQLite comme mattn/go-sqlite3, par exemple) : Railpack ajoute alors gcc/g++/libc6-dev au build et libc6 au runtime. Si vous pouvez l'éviter (un driver pur Go comme modernc.org/sqlite), c'est plus simple et plus portable.

Les fichiers statiques ne sont pas servis par défaut

Gin ne sert aucun fichier tant que vous ne l'avez pas déclaré :

router.StaticFile("/style.css", "style.css")

Ce n'est pas propre à Kavio — c'est le comportement de Gin sur n'importe quel hébergeur.

Ce qui n'est pas nécessaire

Vous n'avez rien à faire concernant :

  • Le gestionnaire de paquets — go.mod/go.sum suffisent, aucune étape de vendoring à prévoir.
  • Le disque applicatif — inscriptible sur Kavio, aucune redirection de fichiers à prévoir (utile si vous utilisez SQLite).