Documentation · Cadriciels

Déployer Go, Ruby, PHP et Rust.

Au-delà de Node et Python, Canner détecte et exécute quatre autres environnements à partir de leurs fichiers manifestes standards. Mêmes règles partout : lire PORT depuis l’environnement, répondre sur /.

Vous exécutez un serveur? Deux règles

Les sites statiques et les cadriciels standards (Next.js, Astro, Vite) n'exigent aucun changement — Canner s'en occupe. Si votre application exécute son propre serveur :

Écoutez sur $PORT — lisez le port depuis la variable d'environnement PORT.
Répondez sur / dans les 30 secondes suivant le démarrage — cette vérification d'état fait passer votre déploiement à « en ligne ». Définissez un autre chemin dans les paramètres du projet si votre racine n'est pas servable.

Go

Un go.mod à la racine déclenche un build Go : go build produit un binaire statique exécuté directement. Lisez le port depuis l’environnement :

package main

import (
    "fmt"
    "net/http"
    "os"
)

func main() {
    http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
        fmt.Fprint(w, "ok")
    })
    http.ListenAndServe(":"+os.Getenv("PORT"), nil)
}

Ruby

Un Gemfile déclenche Bundler avec les gemmes installées dans le projet. Les applications Rails démarrent avec rails server, les applications Rack (config.ru) avec rackup, et Sinatra avec le fichier d’entrée. Puma et les autres gemmes natives se compilent sans problème à l’installation.

PHP

Un composer.json (ou un simple index.php) se déploie en PHP 8.2. Laravel démarre avec artisan serve; tout le reste est servi par le serveur intégré de PHP depuis public/ ou la racine du projet. Les dépendances Composer s’installent automatiquement.

Rust

Un Cargo.toml compile avec cargo build --release et exécute le binaire de production. Les builds Rust sont exigeants en calcul : ils demandent un forfait payant (Live et plus — Forfaits et limites). Axum, Actix et Rocket fonctionnent — liez-vous à la variable PORT.

Java n’est pas encore pris en charge. Un projet pom.xml ou build.gradle échoue avec un message unsupported_runtime clair plutôt que de déployer quelque chose de cassé. Écrivez-nous à hello@canner.ca si vous en avez besoin — la demande fait bouger la feuille de route.