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.sumsuffisent, aucune étape de vendoring à prévoir. - Le disque applicatif — inscriptible sur Kavio, aucune redirection de fichiers à prévoir (utile si vous utilisez SQLite).