Quarkus (Java)
Quarkus fonctionne sur Kavio, mais contrairement à Spring Boot, deux réglages sont indispensables — sans eux le build réussit mais l'application ne démarre pas.
1. Le port n'est pas injecté automatiquement
Kavio détecte un projet Java par la présence d'un pom.xml, mais l'injection automatique du port (-Dserver.port=$PORT) ne concerne que Spring Boot et WildFly Swarm, reconnus par des chaînes précises dans le pom.xml. Quarkus n'y est pas reconnu : il faut lire PORT vous-même, via application.properties :
quarkus.http.port=${PORT:8080}
quarkus.http.host=0.0.0.0
2. La commande de démarrage par défaut ne trouve rien à lancer
Railpack cherche un jar exécutable avec le motif target/*jar. Ça fonctionne pour Spring Boot, mais l'empaquetage fast-jar de Quarkus — celui recommandé en production, à garder tel quel — ne pose aucun jar directement dans target/ : le jar exécutable réel est target/quarkus-app/quarkus-run.jar.
Sans intervention, le démarrage échoue (« Unable to access jarfile target/*jar »). La solution : surcharger la commande de démarrage avec la variable d'environnement RAILPACK_START_CMD (toute variable de configuration Railpack est systématiquement préfixée RAILPACK_) :
RAILPACK_START_CMD=java -jar target/quarkus-app/quarkus-run.jar
Le JSON ne se sérialise pas tout seul
Si vos endpoints REST renvoient des objets Java bruts au lieu de JSON, il manque l'extension Jackson (ou JSON-B) dans votre pom.xml :
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-rest-jackson</artifactId>
</dependency>
Ce n'est pas propre à Kavio — quarkus-rest seul ne l'inclut pas, sur n'importe quel hébergeur.
Le CSS/JS statique fonctionne sans rien faire
Un dossier src/main/resources/META-INF/resources/ est servi nativement, sans étape de build à ajouter.
Choisir sa version de JDK
Sans rien préciser, Kavio utilise le JDK 21 par défaut — surchargeable via RAILPACK_JDK_VERSION (voir la page Spring Boot pour le détail du mécanisme, identique ici).
Ce qui n'est pas nécessaire
Vous n'avez rien à faire concernant :
- Le disque applicatif — inscriptible sur Kavio, aucune redirection de fichiers à prévoir (utile si vous utilisez SQLite).