Framework Francfort, Allemagne

Déployez Spring Boot sur Nodion

Connectez votre dépôt : Nodion compile votre app Spring Boot avec son wrapper Maven ou Gradle, ignore les tests et lance le jar exécutable sur un JRE Temurin. server.port vient de la variable PORT définie par Nodion, vous n'avez donc pas à configurer le port vous-même. 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
pom.xml ou build.gradle(.kts)
Démarrage
java -Dserver.port=$PORT -jar avec le jar Boot
Java
11, 17, 21 (par défaut), 25, 26, 27
Région
EU Central (Francfort)

Déployez Spring Boot étape par étape

  1. Gardez le wrapper et fixez la version de Java Les projets Spring Initializr sont livrés avec mvnw ou gradlew. Nodion exécute ./mvnw -B -DskipTests clean package ou ./gradlew build -x test --no-daemon et lance le jar le plus volumineux de target/ ou build/libs/, en ignorant le jar -plain de Gradle. Gradle sans wrapper échoue ; Maven sans wrapper est compilé avec le Maven de Nodion. La version de Java vient de system.properties (21 par défaut), pas de la chaîne d'outils de votre fichier de build. system.properties
    java.runtime.version=21
  2. Ajoutez Actuator pour le health check Le trafic ne bascule que lorsque le chemin du health check renvoie un code 2xx ou 3xx, et dans beaucoup d'apps Spring Boot le chemin par défaut / renvoie 404. Ajoutez Actuator (avec Gradle : implementation 'org.springframework.boot:spring-boot-starter-actuator') et définissez /actuator/health comme chemin du health check dans les paramètres de l'app. pom.xml
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
  3. Faites pointer la datasource vers vos propres variables Spring Boot attend une URL JDBC et ne lit pas DATABASE_URL, qui est une URL postgres://. Référencez vos propres variables dans application.properties et ajoutez le pilote PostgreSQL org.postgresql:postgresql comme dépendance de runtime. Nodion renseigne ces variables quand vous rattachez la base de données à l'étape suivante. application.properties
    spring.datasource.url=jdbc:postgresql://${DB_HOST}:${DB_PORT}/${DB_NAME}
    spring.datasource.username=${DB_USER}
    spring.datasource.password=${DB_PASSWORD}
  4. Créez l'app et rattachez PostgreSQL Créez une application depuis votre dépôt dans la région EU Central avec au moins 1 Go de mémoire, puis une base de données PostgreSQL dans la même région. En la rattachant dans l'onglet Environment, injectez host, port, database, user et password sous les noms DB_HOST, DB_PORT, DB_NAME, DB_USER et DB_PASSWORD. Ces variables arrivent au prochain déploiement.
  5. Poussez pour déployer Chaque push sur la branche construit une nouvelle release. Les migrations Flyway ou Liquibase s'exécutent au démarrage de la nouvelle version, avant qu'elle ne passe le health check ; jusque-là, la version en cours continue de répondre. Gardez donc vos migrations compatibles avec l'ancien code.

Bon à savoir

  • MémoirePrévoyez 1 Go ou plus par instance. Par défaut, la JVM reçoit JAVA_TOOL_OPTIONS=-XX:MaxRAMPercentage=80.0 : le tas peut donc occuper la majeure partie de la mémoire de l'instance. Définissez JAVA_TOOL_OPTIONS pour remplacer cette valeur, ou JAVA_OPTS pour ajouter des options à la commande de démarrage.
  • Spring SecuritySi vous définissez votre propre security filter chain, autorisez /actuator/health sans authentification. Avec un 401 ou un 403 sur le chemin du health check, la release n'est jamais prête et elle est abandonnée au bout de 10 minutes, pendant que l'ancienne version continue de répondre.
  • Projets multi-modulesNodion ne cherche les jars que directement dans target/ et build/libs/ du répertoire indiqué dans le champ Base directory. Si le jar Boot est généré dans le dossier d'un module, lancez-le avec une ligne de Procfile et passez le port vous-même, par exemple web: java -Dserver.port=$PORT -jar app/build/libs/app.jar.

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

Spring Boot sur Nodion : questions et réponses

Pourquoi mon déploiement Spring Boot n'est-il jamais prêt ?

En général, le health check appelle /, qui n'a pas de mapping et répond 404, ou Spring Security répond 401. Ajoutez Actuator, définissez /actuator/health comme chemin du health check et rendez-le accessible sans authentification. Une JVM qui manque de mémoire au démarrage n'est jamais prête non plus : donnez-lui 1 Go ou plus.

Puis-je compiler avec Gradle sans le wrapper ?

Non. Un projet Gradle a besoin d'un gradlew committé avec le dossier gradle/wrapper ; exécutez une fois gradle wrapper et commitez le résultat. Les projets Maven se compilent aussi sans wrapper, avec le Maven de Nodion.

Spring Boot fonctionne-t-il avec Kotlin ?

Oui. Les projets Kotlin issus de Spring Initializr se compilent avec le même wrapper Maven ou Gradle, et build.gradle.kts est détecté comme build.gradle.

Où tourne mon app Spring Boot ?

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 Spring Boot 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 Spring Boot 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 à 5.50 EUR par mois : App 4 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 Spring Boot ?

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.